home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 March: Reference Library / Dev.CD Mar 96 RL / Dev.CD Mar 96 RL.toast / Technical Documentation / develop / develop Issue 24 / develop Issue 24 code / Scriptable Database 1.0a11.sea / Scriptable Database 1.0a11 / Base / List.h < prev    next >
MacBinary  |  1995-10-17  |  29.1 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Tue Oct 17 16:28:06 1995, modified Tue Oct 17 16:28:06 1995, creator 'MPS ', type ASCII, 28890 bytes "List.h" , at 0x715a 661 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-4K) default (weak)
16% TrID MacBinary 2 default (weak)
100% dearkID deark: macbinary default
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 4c 69 73 74 2e 68 | 00 00 00 00 00 00 00 00 |..List.h|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 70 da 00 | 00 02 95 ac a9 c2 56 ac |.....p..|......V.|
|00000060| a9 c2 56 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..V.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 fd 0e 00 00 |........|........|
|00000080| 2f 2a 0d 09 46 69 6c 65 | 3a 09 09 4c 69 73 74 2e |/*..File|:..List.|
|00000090| 68 0d 0d 09 43 6f 6e 74 | 61 69 6e 73 3a 09 4c 69 |h...Cont|ains:.Li|
|000000a0| 73 74 73 20 6f 66 20 76 | 6f 69 64 2a d5 73 2c 20 |sts of v|oid*.s, |
|000000b0| 6c 69 73 74 73 20 6f 66 | 20 54 4f 62 6a 65 63 74 |lists of| TObject|
|000000c0| 2a d5 73 2c 20 6c 6f 6f | 70 73 20 74 68 65 72 65 |*.s, loo|ps there|
|000000d0| 6f 66 2c 20 73 74 61 63 | 6b 73 20 61 6e 64 20 71 |of, stac|ks and q|
|000000e0| 75 65 75 65 73 2e 0d 09 | 09 09 09 44 6f 65 73 6e |ueues...|...Doesn|
|000000f0| d5 74 20 61 6c 6c 6f 77 | 20 61 64 64 69 6e 67 20 |.t allow| adding |
|00000100| 69 74 65 6d 73 20 74 68 | 61 74 20 61 72 65 20 6e |items th|at are n|
|00000110| 69 6c 2e 0d 0d 09 09 09 | 09 54 4c 69 73 74 73 20 |il......|.TLists |
|00000120| 61 72 65 20 75 73 75 61 | 6c 6c 79 20 75 6e 6f 72 |are usua|lly unor|
|00000130| 64 65 72 65 64 2c 20 54 | 4f 62 6a 65 63 74 4c 69 |dered, T|ObjectLi|
|00000140| 73 74 73 20 63 61 6e 20 | 62 65 20 73 6f 72 74 65 |sts can |be sorte|
|00000150| 64 2e 0d 09 09 09 09 49 | 6e 20 67 65 6e 65 72 61 |d......I|n genera|
|00000160| 6c 20 75 73 65 20 54 4f | 62 6a 65 63 74 4c 69 73 |l use TO|bjectLis|
|00000170| 74 20 28 6f 72 20 62 65 | 74 74 65 72 2c 20 44 45 |t (or be|tter, DE|
|00000180| 43 4c 41 52 45 4f 42 4a | 45 43 54 4c 49 53 54 29 |CLAREOBJ|ECTLIST)|
|00000190| 20 66 6f 72 20 69 74 65 | 6d 73 20 74 68 61 74 0d | for ite|ms that.|
|000001a0| 09 09 09 09 61 72 65 20 | 64 65 72 69 76 65 64 20 |....are |derived |
|000001b0| 66 72 6f 6d 20 54 4f 62 | 6a 65 63 74 3b 20 75 73 |from TOb|ject; us|
|000001c0| 65 20 54 4c 69 73 74 20 | 28 6f 72 20 62 65 74 74 |e TList |(or bett|
|000001d0| 65 72 2c 20 44 45 43 4c | 41 52 45 4c 49 53 54 29 |er, DECL|ARELIST)|
|000001e0| 20 66 6f 72 20 69 74 65 | 6d 73 0d 09 09 09 09 74 | for ite|ms.....t|
|000001f0| 68 61 74 20 61 72 65 20 | 6e 6f 74 20 64 65 72 69 |hat are |not deri|
|00000200| 76 65 64 20 66 72 6f 6d | 20 54 4f 62 6a 65 63 74 |ved from| TObject|
|00000210| 2e 0d 0d 09 57 72 69 74 | 74 65 6e 20 62 79 3a 09 |....Writ|ten by:.|
|00000220| 42 72 75 63 65 20 48 6f | 72 6e 2c 20 53 74 65 76 |Bruce Ho|rn, Stev|
|00000230| 65 20 43 61 70 70 73 2c | 20 4c 61 72 72 79 20 4b |e Capps,| Larry K|
|00000240| 65 6e 79 6f 6e 2c 20 4a | 6f 68 6e 20 4d 65 69 65 |enyon, J|ohn Meie|
|00000250| 72 2c 20 73 63 6f 74 74 | 20 64 6f 75 67 6c 61 73 |r, scott| douglas|
|00000260| 73 2c 20 44 61 72 69 6e | 20 41 64 6c 65 72 2c 0d |s, Darin| Adler,.|
|00000270| 09 09 09 09 50 61 75 6c | 20 4d 65 72 63 65 72 2c |....Paul| Mercer,|
|00000280| 20 42 72 79 61 6e 20 53 | 74 65 61 72 6e 73 2c 20 | Bryan S|tearns, |
|00000290| 44 61 76 65 20 4f 77 65 | 6e 73 0d 09 09 09 09 0d |Dave Owe|ns......|
|000002a0| 09 09 09 09 41 6e 64 79 | 20 4e 69 63 68 6f 6c 61 |....Andy| Nichola|
|000002b0| 73 2c 20 47 72 65 67 20 | 41 6e 64 65 72 73 6f 6e |s, Greg |Anderson|
|000002c0| 2c 20 43 68 72 69 73 20 | 42 69 6e 67 68 61 6d 0d |, Chris |Bingham.|
|000002d0| 0d 09 43 6f 70 79 72 69 | 67 68 74 3a 09 a9 20 31 |..Copyri|ght:.. 1|
|000002e0| 39 38 38 2d 31 39 39 35 | 20 62 79 20 41 70 70 6c |988-1995| by Appl|
|000002f0| 65 20 43 6f 6d 70 75 74 | 65 72 2c 20 49 6e 63 2e |e Comput|er, Inc.|
|00000300| 2c 20 61 6c 6c 20 72 69 | 67 68 74 73 20 72 65 73 |, all ri|ghts res|
|00000310| 65 72 76 65 64 2e 0d 0d | 09 09 20 3c 34 3e 09 20 |erved...|.. <4>. |
|00000320| 20 36 2f 36 2f 39 35 09 | 67 61 09 09 0d 2a 2f 0d | 6/6/95.|ga...*/.|
|00000330| 0d 23 69 66 6e 64 65 66 | 20 4c 69 73 74 5f 68 0d |.#ifndef| List_h.|
|00000340| 23 64 65 66 69 6e 65 20 | 4c 69 73 74 5f 68 0d 0d |#define |List_h..|
|00000350| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 64 64 65 66 |#include| <stddef|
|00000360| 2e 68 3e 0d 0d 2f 2f 0d | 2f 2f 20 57 65 20 6e 65 |.h>..//.|// We ne|
|00000370| 65 64 20 65 78 63 65 70 | 74 69 6f 6e 73 2e 68 20 |ed excep|tions.h |
|00000380| 73 6f 20 74 68 61 74 20 | 54 4c 6f 6f 70 20 63 61 |so that |TLoop ca|
|00000390| 6e 0d 2f 2f 20 69 6e 68 | 65 72 69 74 20 66 72 6f |n.// inh|erit fro|
|000003a0| 6d 20 54 45 78 63 65 70 | 74 69 6f 6e 41 63 74 69 |m TExcep|tionActi|
|000003b0| 6f 6e 0d 2f 2f 0d 23 69 | 6e 63 6c 75 64 65 20 22 |on.//.#i|nclude "|
|000003c0| 45 78 63 65 70 74 69 6f | 6e 73 2e 68 22 0d 0d 2f |Exceptio|ns.h"../|
|000003d0| 2f 0d 2f 2f 20 46 6f 72 | 20 6f 62 6a 65 63 74 20 |/.// For| object |
|000003e0| 6c 69 73 74 73 0d 2f 2f | 0d 23 69 6e 63 6c 75 64 |lists.//|.#includ|
|000003f0| 65 20 22 4f 62 6a 65 63 | 74 2e 68 22 0d 0d 2f 2f |e "Objec|t.h"..//|
|00000400| 0d 2f 2f 20 46 6f 72 20 | 6f 62 6a 65 63 74 20 62 |.// For |object b|
|00000410| 6c 6f 63 6b 20 63 61 63 | 68 65 0d 2f 2f 0d 23 69 |lock cac|he.//.#i|
|00000420| 6e 63 6c 75 64 65 20 22 | 4f 62 6a 65 63 74 43 61 |nclude "|ObjectCa|
|00000430| 63 68 65 2e 68 22 0d 0d | 65 6e 75 6d 20 7b 0d 09 |che.h"..|enum {..|
|00000440| 6b 49 74 65 6d 53 69 7a | 65 20 09 09 09 09 3d 20 |kItemSiz|e ....= |
|00000450| 73 69 7a 65 6f 66 28 75 | 6e 73 69 67 6e 65 64 20 |sizeof(u|nsigned |
|00000460| 6c 6f 6e 67 29 2c 0d 09 | 6b 49 74 65 6d 4e 6f 74 |long),..|kItemNot|
|00000470| 46 6f 75 6e 64 09 09 09 | 3d 20 2d 31 2c 20 09 09 |Found...|= -1, ..|
|00000480| 09 09 09 09 2f 2f 20 28 | 74 6f 20 62 65 20 75 73 |....// (|to be us|
|00000490| 65 64 20 77 68 65 72 65 | 20 79 6f 75 27 72 65 20 |ed where| you're |
|000004a0| 65 78 70 65 63 74 69 6e | 67 20 61 20 69 6e 64 65 |expectin|g a inde|
|000004b0| 78 20 6f 66 20 62 79 74 | 65 73 29 0d 09 6b 42 79 |x of byt|es)..kBy|
|000004c0| 74 65 49 74 65 6d 4e 6f | 74 46 6f 75 6e 64 09 09 |teItemNo|tFound..|
|000004d0| 3d 20 6b 49 74 65 6d 4e | 6f 74 46 6f 75 6e 64 20 |= kItemN|otFound |
|000004e0| 2a 20 6b 49 74 65 6d 53 | 69 7a 65 20 2f 2f 20 28 |* kItemS|ize // (|
|000004f0| 74 6f 20 62 65 20 75 73 | 65 64 20 77 68 65 6e 20 |to be us|ed when |
|00000500| 79 6f 75 27 72 65 20 65 | 78 70 65 63 74 69 6e 67 |you're e|xpecting|
|00000510| 20 61 6e 20 69 6e 64 65 | 78 20 6f 66 20 65 6e 74 | an inde|x of ent|
|00000520| 72 69 65 73 29 0d 09 7d | 3b 0d 0d 2f 2f 3d 3d 3d |ries)..}|;..//===|
|00000530| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000540| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000550| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000560| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000570| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000580| 3d 3d 3d 3d 3d 0d 2f 2f | 20 43 4c 41 53 53 20 4c |=====.//| CLASS L|
|00000590| 69 73 74 0d 2f 2f 0d 2f | 2f 20 4c 69 73 74 20 6f |ist.//./|/ List o|
|000005a0| 66 20 76 6f 69 64 2a d5 | 73 0d 2f 2f 0d 2f 2f 09 |f void*.|s.//.//.|
|000005b0| 41 64 64 2c 20 41 70 70 | 65 6e 64 2c 20 49 6e 73 |Add, App|end, Ins|
|000005c0| 65 72 74 2c 20 52 65 6d | 6f 76 65 20 61 6e 64 20 |ert, Rem|ove and |
|000005d0| 52 65 6d 6f 76 65 41 6c | 6c 20 63 61 6e d5 74 20 |RemoveAl|l can.t |
|000005e0| 62 65 20 63 61 6c 6c 65 | 64 20 77 68 69 6c 65 20 |be calle|d while |
|000005f0| 74 68 65 20 6c 69 73 74 | 20 68 61 73 20 61 20 54 |the list| has a T|
|00000600| 4c 6f 6f 70 0d 2f 2f 09 | 69 6e 20 73 63 6f 70 65 |Loop.//.|in scope|
|00000610| 20 62 75 74 20 73 65 65 | 20 54 4c 6f 6f 70 3a 3a | but see| TLoop::|
|00000620| 52 65 6d 6f 76 65 43 75 | 72 72 65 6e 74 28 29 2e |RemoveCu|rrent().|
|00000630| 0d 2f 2f 0d 2f 2f 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.//.//==|========|
|00000640| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000650| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000660| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000670| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000680| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0d |========|======..|
|00000690| 63 6c 61 73 73 20 54 4c | 69 73 74 20 3a 20 70 75 |class TL|ist : pu|
|000006a0| 62 6c 69 63 20 54 43 61 | 6e 52 65 63 65 69 76 65 |blic TCa|nReceive|
|000006b0| 44 65 6c 65 74 65 4e 6f | 74 69 66 69 63 61 74 69 |DeleteNo|tificati|
|000006c0| 6f 6e 0d 09 7b 0d 09 0d | 09 2f 2f 20 2d 2d 2d 20 |on..{...|.// --- |
|000006d0| 4d 65 74 68 6f 64 73 20 | 2d 2d 2d 2d 2d 2d 2d 2d |Methods |--------|
|000006e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 70 75 |--------|-----.pu|
|00000730| 62 6c 69 63 3a 0d 09 73 | 74 61 74 69 63 20 54 4c |blic:..s|tatic TL|
|00000740| 69 73 74 2a 20 09 09 4d | 61 6b 65 28 29 3b 0d 09 |ist* ..M|ake();..|
|00000750| 73 74 61 74 69 63 20 54 | 4c 69 73 74 2a 20 09 09 |static T|List* ..|
|00000760| 4d 61 6b 65 49 6e 53 79 | 73 74 65 6d 48 65 61 70 |MakeInSy|stemHeap|
|00000770| 28 29 3b 0d 09 73 74 61 | 74 69 63 20 54 4c 69 73 |();..sta|tic TLis|
|00000780| 74 2a 20 09 09 4d 61 6b | 65 28 75 6e 73 69 67 6e |t* ..Mak|e(unsign|
|00000790| 65 64 20 6c 6f 6e 67 20 | 67 75 65 73 73 43 6f 75 |ed long |guessCou|
|000007a0| 6e 74 29 3b 0d 09 73 74 | 61 74 69 63 20 54 4c 69 |nt);..st|atic TLi|
|000007b0| 73 74 2a 20 09 09 4d 61 | 6b 65 28 75 6e 73 69 67 |st* ..Ma|ke(unsig|
|000007c0| 6e 65 64 20 6c 6f 6e 67 | 20 67 75 65 73 73 43 6f |ned long| guessCo|
|000007d0| 75 6e 74 2c 20 42 6f 6f | 6c 65 61 6e 20 69 6e 53 |unt, Boo|lean inS|
|000007e0| 79 73 74 65 6d 48 65 61 | 70 29 3b 0d 09 09 09 09 |ystemHea|p);.....|
|000007f0| 09 09 7e 54 4c 69 73 74 | 28 29 3b 0d 0d 09 76 6f |..~TList|();...vo|
|00000800| 69 64 09 09 09 09 43 6f | 6e 73 74 72 75 63 74 6f |id....Co|nstructo|
|00000810| 72 28 29 3b 0d 0d 09 54 | 4f 62 6a 65 63 74 42 6c |r();...T|ObjectBl|
|00000820| 6f 63 6b 43 61 63 68 65 | 09 66 4f 62 6a 65 63 74 |ockCache|.fObject|
|00000830| 42 6c 6f 63 6b 43 61 63 | 68 65 3b 0d 0d 09 54 4c |BlockCac|he;...TL|
|00000840| 69 73 74 2a 09 09 09 09 | 43 6c 6f 6e 65 28 42 6f |ist*....|Clone(Bo|
|00000850| 6f 6c 65 61 6e 20 66 6f | 72 63 65 43 72 65 61 74 |olean fo|rceCreat|
|00000860| 65 20 3d 20 74 72 75 65 | 29 3b 09 09 2f 2f a5 20 |e = true|);..//. |
|00000870| 52 65 74 75 72 6e 20 61 | 20 6e 65 77 20 6c 69 73 |Return a| new lis|
|00000880| 74 20 69 64 65 6e 74 69 | 63 61 6c 20 74 6f 20 6f |t identi|cal to o|
|00000890| 75 72 73 0d 09 0d 09 6c | 6f 6e 67 09 09 09 09 43 |urs....l|ong....C|
|000008a0| 6f 75 6e 74 28 29 3b 09 | 09 09 09 09 09 09 09 2f |ount();.|......./|
|000008b0| 2f 09 72 65 74 75 72 6e | 20 74 68 65 20 6e 75 6d |/.return| the num|
|000008c0| 62 65 72 20 6f 66 20 69 | 74 65 6d 73 20 69 6e 20 |ber of i|tems in |
|000008d0| 74 68 65 20 6c 69 73 74 | 0d 09 6c 6f 6e 67 09 09 |the list|..long..|
|000008e0| 09 09 42 79 74 65 43 6f | 75 6e 74 28 29 3b 09 09 |..ByteCo|unt();..|
|000008f0| 09 09 09 09 09 2f 2f 09 | 72 65 74 75 72 6e 20 74 |.....//.|return t|
|00000900| 68 65 20 62 79 74 65 20 | 73 69 7a 65 20 6f 66 20 |he byte |size of |
|00000910| 69 74 65 6d 73 20 69 6e | 20 74 68 65 20 6c 69 73 |items in| the lis|
|00000920| 74 0d 09 6c 6f 6e 67 09 | 09 09 09 4c 61 73 74 42 |t..long.|...LastB|
|00000930| 79 74 65 49 6e 64 65 78 | 28 29 3b 09 09 09 09 09 |yteIndex|();.....|
|00000940| 09 2f 2f 09 72 65 74 75 | 72 6e 20 74 68 65 20 62 |.//.retu|rn the b|
|00000950| 79 74 65 20 69 6e 64 65 | 78 20 6f 66 20 74 68 65 |yte inde|x of the|
|00000960| 20 6c 61 73 74 20 69 74 | 65 6d 0d 09 42 6f 6f 6c | last it|em..Bool|
|00000970| 65 61 6e 09 09 09 09 45 | 6d 70 74 79 28 29 3b 09 |ean....E|mpty();.|
|00000980| 09 09 09 09 09 09 09 2f | 2f 09 72 65 74 75 72 6e |......./|/.return|
|00000990| 20 74 72 75 65 20 69 66 | 20 6c 69 73 74 20 69 73 | true if| list is|
|000009a0| 20 65 6d 70 74 79 0d 09 | 76 6f 69 64 2a 09 09 09 | empty..|void*...|
|000009b0| 09 46 69 72 73 74 28 29 | 3b 09 09 09 09 09 09 09 |.First()|;.......|
|000009c0| 09 2f 2f 09 72 65 74 75 | 72 6e 20 74 68 65 20 66 |.//.retu|rn the f|
|000009d0| 69 72 73 74 20 69 74 65 | 6d 20 69 6e 20 74 68 65 |irst ite|m in the|
|000009e0| 20 6c 69 73 74 20 28 6f | 72 20 6e 69 6c 20 69 66 | list (o|r nil if|
|000009f0| 20 6e 6f 6e 65 29 0d 09 | 76 6f 69 64 2a 09 09 09 | none)..|void*...|
|00000a00| 09 4c 61 73 74 28 29 3b | 09 09 09 09 09 09 09 09 |.Last();|........|
|00000a10| 09 2f 2f 09 72 65 74 75 | 72 6e 20 74 68 65 20 6c |.//.retu|rn the l|
|00000a20| 61 73 74 20 69 74 65 6d | 20 69 6e 20 74 68 65 20 |ast item| in the |
|00000a30| 6c 69 73 74 20 28 6f 72 | 20 6e 69 6c 20 69 66 20 |list (or| nil if |
|00000a40| 6e 6f 6e 65 29 0d 09 76 | 6f 69 64 2a 09 09 09 09 |none)..v|oid*....|
|00000a50| 4e 65 78 74 28 63 6f 6e | 73 74 20 76 6f 69 64 2a |Next(con|st void*|
|00000a60| 29 3b 09 09 09 09 09 09 | 2f 2f 09 72 65 74 75 72 |);......|//.retur|
|00000a70| 6e 20 74 68 65 20 69 74 | 65 6d 20 61 66 74 65 72 |n the it|em after|
|00000a80| 20 74 68 65 20 66 69 72 | 73 74 20 6f 63 63 75 72 | the fir|st occur|
|00000a90| 61 6e 63 65 20 6f 66 20 | 74 68 65 20 67 69 76 65 |ance of |the give|
|00000aa0| 6e 20 69 74 65 6d 20 28 | 6f 72 20 6e 69 6c 20 69 |n item (|or nil i|
|00000ab0| 66 20 6e 6f 6e 65 29 0d | 09 76 6f 69 64 2a 09 09 |f none).|.void*..|
|00000ac0| 09 09 50 72 65 76 69 6f | 75 73 28 63 6f 6e 73 74 |..Previo|us(const|
|00000ad0| 20 76 6f 69 64 2a 29 3b | 0d 09 76 6f 69 64 2a 09 | void*);|..void*.|
|00000ae0| 09 09 09 49 74 68 28 75 | 6e 73 69 67 6e 65 64 20 |...Ith(u|nsigned |
|00000af0| 73 68 6f 72 74 20 69 6e | 64 65 78 29 3b 09 09 09 |short in|dex);...|
|00000b00| 09 2f 2f 09 72 65 74 75 | 72 6e 20 74 68 65 20 69 |.//.retu|rn the i|
|00000b10| 74 68 20 69 74 65 6d 0d | 09 76 6f 69 64 2a 09 09 |th item.|.void*..|
|00000b20| 09 09 42 79 74 65 49 74 | 68 28 75 6e 73 69 67 6e |..ByteIt|h(unsign|
|00000b30| 65 64 20 6c 6f 6e 67 20 | 62 79 74 65 49 6e 64 65 |ed long |byteInde|
|00000b40| 78 29 3b 09 09 2f 2f 09 | 72 65 74 75 72 6e 20 74 |x);..//.|return t|
|00000b50| 68 65 20 69 74 68 20 69 | 74 65 6d 0d 0d 09 76 6f |he ith i|tem...vo|
|00000b60| 69 64 09 09 09 09 46 6f | 72 45 61 63 68 44 6f 28 |id....Fo|rEachDo(|
|00000b70| 76 6f 69 64 20 28 2a 66 | 75 6e 63 29 28 76 6f 69 |void (*f|unc)(voi|
|00000b80| 64 2a 29 29 3b 09 09 09 | 2f 2f 20 63 61 6c 6c 20 |d*));...|// call |
|00000b90| 66 75 6e 63 20 70 61 73 | 73 69 6e 67 20 69 74 20 |func pas|sing it |
|00000ba0| 65 61 63 68 20 69 74 65 | 6d 20 69 6e 20 74 68 65 |each ite|m in the|
|00000bb0| 20 6c 69 73 74 0d 09 76 | 6f 69 64 2a 09 09 09 09 | list..v|oid*....|
|00000bc0| 46 69 6e 64 46 69 72 73 | 74 53 75 63 68 54 68 61 |FindFirs|tSuchTha|
|00000bd0| 74 28 42 6f 6f 6c 65 61 | 6e 20 28 2a 66 75 6e 63 |t(Boolea|n (*func|
|00000be0| 29 28 63 6f 6e 73 74 20 | 76 6f 69 64 2a 29 29 3b |)(const |void*));|
|00000bf0| 2f 2f 20 63 61 6c 6c 20 | 66 75 6e 63 20 70 61 73 |// call |func pas|
|00000c00| 73 69 6e 67 20 69 74 20 | 65 61 63 68 20 69 74 65 |sing it |each ite|
|00000c10| 6d 20 69 6e 20 74 68 65 | 20 6c 69 73 74 20 75 6e |m in the| list un|
|00000c20| 74 69 6c 20 66 75 6e 63 | 0d 09 09 09 09 09 09 09 |til func|........|
|00000c30| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 72 65 74 75 |........|.// retu|
|00000c40| 72 6e 73 20 74 72 75 65 | 2c 20 72 65 74 75 72 6e |rns true|, return|
|00000c50| 73 20 74 68 65 20 69 74 | 65 6d 20 6f 72 20 6e 69 |s the it|em or ni|
|00000c60| 6c 20 69 66 20 6e 6f 6e | 65 0d 0d 09 76 6f 69 64 |l if non|e...void|
|00000c70| 09 09 09 09 41 64 64 28 | 76 6f 69 64 2a 29 3b 09 |....Add(|void*);.|
|00000c80| 09 09 09 09 09 09 09 2f | 2f 09 61 64 64 20 61 6e |......./|/.add an|
|00000c90| 20 69 74 65 6d 20 74 6f | 20 74 68 65 20 6c 69 73 | item to| the lis|
|00000ca0| 74 20 28 6f 72 64 65 72 | 20 75 6e 73 70 65 63 69 |t (order| unspeci|
|00000cb0| 66 69 65 64 29 0d 09 76 | 6f 69 64 09 09 09 09 41 |fied)..v|oid....A|
|00000cc0| 70 70 65 6e 64 28 76 6f | 69 64 2a 29 3b 09 09 09 |ppend(vo|id*);...|
|00000cd0| 09 09 09 09 2f 2f 09 61 | 70 70 65 6e 64 20 61 6e |....//.a|ppend an|
|00000ce0| 20 69 74 65 6d 20 74 6f | 20 74 68 65 20 6c 69 73 | item to| the lis|
|00000cf0| 74 0d 09 76 6f 69 64 09 | 09 09 09 49 6e 73 65 72 |t..void.|...Inser|
|00000d00| 74 28 76 6f 69 64 2a 2c | 20 75 6e 73 69 67 6e 65 |t(void*,| unsigne|
|00000d10| 64 20 6c 6f 6e 67 20 62 | 65 66 6f 72 65 49 6e 64 |d long b|eforeInd|
|00000d20| 65 78 20 3d 20 30 2c 20 | 75 6e 73 69 67 6e 65 64 |ex = 0, |unsigned|
|00000d30| 20 6c 6f 6e 67 20 6e 75 | 6d 49 74 65 6d 73 20 3d | long nu|mItems =|
|00000d40| 20 31 29 3b 09 2f 2f a5 | 09 69 6e 73 65 72 74 20 | 1);.//.|.insert |
|00000d50| 61 6e 20 69 74 65 6d 20 | 62 65 66 6f 72 65 20 74 |an item |before t|
|00000d60| 68 65 20 67 69 76 65 6e | 20 69 6e 64 65 78 0d 09 |he given| index..|
|00000d70| 42 6f 6f 6c 65 61 6e 09 | 09 09 09 41 64 64 55 6e |Boolean.|...AddUn|
|00000d80| 69 71 75 65 28 76 6f 69 | 64 2a 29 3b 09 09 09 09 |ique(voi|d*);....|
|00000d90| 09 09 2f 2f 20 61 64 64 | 20 61 6e 20 69 74 65 6d |..// add| an item|
|00000da0| 20 69 66 20 69 74 27 73 | 20 6e 6f 74 20 61 6c 72 | if it's| not alr|
|00000db0| 65 61 64 79 20 70 72 65 | 73 65 6e 74 20 28 26 20 |eady pre|sent (& |
|00000dc0| 72 65 74 75 72 6e 20 74 | 72 75 65 29 3b 20 64 6f |return t|rue); do|
|00000dd0| 20 6e 6f 74 68 69 6e 67 | 20 26 20 72 65 74 75 72 | nothing| & retur|
|00000de0| 6e 20 66 61 6c 73 65 20 | 69 66 20 6e 6f 74 0d 09 |n false |if not..|
|00000df0| 76 6f 69 64 20 09 09 09 | 09 43 6f 6e 63 61 74 28 |void ...|.Concat(|
|00000e00| 54 4c 69 73 74 2a 20 61 | 70 70 65 6e 64 29 3b 09 |TList* a|ppend);.|
|00000e10| 09 09 09 09 2f 2f 63 6f | 6e 63 61 74 20 74 68 65 |....//co|ncat the|
|00000e20| 20 63 6f 6e 74 65 6e 74 | 73 20 6f 66 20 61 70 70 | content|s of app|
|00000e30| 65 6e 64 20 6f 6e 74 6f | 20 65 6e 64 20 6f 66 20 |end onto| end of |
|00000e40| 74 68 69 73 0d 0d 09 76 | 6f 69 64 09 09 09 09 52 |this...v|oid....R|
|00000e50| 65 6d 6f 76 65 4e 6f 54 | 72 69 6d 28 75 6e 73 69 |emoveNoT|rim(unsi|
|00000e60| 67 6e 65 64 20 6c 6f 6e | 67 29 3b 09 09 09 2f 2f |gned lon|g);...//|
|00000e70| 09 72 65 6d 6f 76 65 20 | 74 68 65 20 69 74 65 6d |.remove |the item|
|00000e80| 20 77 69 74 68 20 74 68 | 65 20 67 69 76 65 6e 20 | with th|e given |
|00000e90| 69 6e 64 65 78 20 28 64 | 6f 65 73 20 6e 6f 74 20 |index (d|oes not |
|00000ea0| 54 72 69 6d 28 29 29 0d | 09 76 6f 69 64 09 09 09 |Trim()).|.void...|
|00000eb0| 09 52 65 6d 6f 76 65 28 | 75 6e 73 69 67 6e 65 64 |.Remove(|unsigned|
|00000ec0| 20 6c 6f 6e 67 29 3b 09 | 09 09 09 09 2f 2f 09 72 | long);.|....//.r|
|00000ed0| 65 6d 6f 76 65 20 74 68 | 65 20 69 74 65 6d 20 77 |emove th|e item w|
|00000ee0| 69 74 68 20 74 68 65 20 | 67 69 76 65 6e 20 69 6e |ith the |given in|
|00000ef0| 64 65 78 20 28 64 6f 65 | 73 20 54 72 69 6d 28 29 |dex (doe|s Trim()|
|00000f00| 29 0d 09 76 6f 69 64 09 | 09 09 09 52 65 6d 6f 76 |)..void.|...Remov|
|00000f10| 65 4e 6f 54 72 69 6d 28 | 63 6f 6e 73 74 20 76 6f |eNoTrim(|const vo|
|00000f20| 69 64 2a 29 3b 09 09 09 | 09 2f 2f 09 72 65 6d 6f |id*);...|.//.remo|
|00000f30| 76 65 20 74 68 65 20 66 | 69 72 73 74 20 69 6e 73 |ve the f|irst ins|
|00000f40| 74 61 6e 63 65 20 6f 66 | 20 61 20 67 69 76 65 6e |tance of| a given|
|00000f50| 20 69 74 65 6d 20 28 64 | 6f 65 73 20 6e 6f 74 20 | item (d|oes not |
|00000f60| 54 72 69 6d 28 29 29 0d | 09 76 6f 69 64 09 09 09 |Trim()).|.void...|
|00000f70| 09 52 65 6d 6f 76 65 28 | 63 6f 6e 73 74 20 76 6f |.Remove(|const vo|
|00000f80| 69 64 2a 29 3b 09 09 09 | 09 09 2f 2f 09 72 65 6d |id*);...|..//.rem|
|00000f90| 6f 76 65 20 74 68 65 20 | 66 69 72 73 74 20 69 6e |ove the |first in|
|00000fa0| 73 74 61 6e 63 65 20 6f | 66 20 61 20 67 69 76 65 |stance o|f a give|
|00000fb0| 6e 20 69 74 65 6d 20 28 | 64 6f 65 73 20 54 72 69 |n item (|does Tri|
|00000fc0| 6d 28 29 29 0d 09 76 6f | 69 64 09 09 09 09 52 65 |m())..vo|id....Re|
|00000fd0| 6d 6f 76 65 41 6c 6c 4e | 6f 54 72 69 6d 28 29 3b |moveAllN|oTrim();|
|00000fe0| 09 09 09 09 09 09 2f 2f | 09 65 6d 70 74 79 20 74 |......//|.empty t|
|00000ff0| 68 65 20 6c 69 73 74 20 | 77 69 74 68 6f 75 74 20 |he list |without |
|00001000| 64 65 6c 65 74 69 6e 67 | 20 69 74 73 20 6f 62 6a |deleting| its obj|
|00001010| 65 63 74 73 20 28 64 6f | 65 73 20 6e 6f 74 20 54 |ects (do|es not T|
|00001020| 72 69 6d 28 29 29 0d 09 | 76 6f 69 64 09 09 09 09 |rim())..|void....|
|00001030| 52 65 6d 6f 76 65 41 6c | 6c 28 29 3b 09 09 09 09 |RemoveAl|l();....|
|00001040| 09 09 09 2f 2f 09 65 6d | 70 74 79 20 74 68 65 20 |...//.em|pty the |
|00001050| 6c 69 73 74 20 77 69 74 | 68 6f 75 74 20 64 65 6c |list wit|hout del|
|00001060| 65 74 69 6e 67 20 69 74 | 73 20 6f 62 6a 65 63 74 |eting it|s object|
|00001070| 73 20 28 64 6f 65 73 20 | 54 72 69 6d 28 29 29 0d |s (does |Trim()).|
|00001080| 0d 09 76 6f 69 64 2a 09 | 09 09 09 52 65 70 6c 61 |..void*.|...Repla|
|00001090| 63 65 28 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |ce(unsig|ned long|
|000010a0| 2c 20 76 6f 69 64 2a 20 | 6e 65 77 49 74 65 6d 29 |, void* |newItem)|
|000010b0| 3b 09 2f 2f 09 72 65 70 | 6c 61 63 65 20 74 68 65 |;.//.rep|lace the|
|000010c0| 20 69 74 65 6d 20 77 69 | 74 68 20 74 68 65 20 67 | item wi|th the g|
|000010d0| 69 76 65 6e 20 69 6e 64 | 65 78 20 77 69 74 68 20 |iven ind|ex with |
|000010e0| 6e 65 77 49 74 65 6d 3b | 20 72 65 74 75 72 6e 73 |newItem;| returns|
|000010f0| 20 74 68 65 20 69 74 65 | 6d 20 72 65 70 6c 61 63 | the ite|m replac|
|00001100| 65 64 0d 09 76 6f 69 64 | 09 09 09 09 52 65 70 6c |ed..void|....Repl|
|00001110| 61 63 65 28 63 6f 6e 73 | 74 20 76 6f 69 64 2a 20 |ace(cons|t void* |
|00001120| 6f 6c 64 49 74 65 6d 2c | 20 76 6f 69 64 2a 20 6e |oldItem,| void* n|
|00001130| 65 77 49 74 65 6d 29 3b | 20 2f 2f 09 72 65 70 6c |ewItem);| //.repl|
|00001140| 61 63 65 20 74 68 65 20 | 66 69 72 73 74 20 69 6e |ace the |first in|
|00001150| 73 74 61 6e 63 65 20 6f | 66 20 6f 6c 64 49 74 65 |stance o|f oldIte|
|00001160| 6d 20 77 69 74 68 20 6e | 65 77 49 74 65 6d 0d 0d |m with n|ewItem..|
|00001170| 09 6c 6f 6e 67 09 09 09 | 09 42 79 74 65 49 6e 64 |.long...|.ByteInd|
|00001180| 65 78 28 63 6f 6e 73 74 | 20 76 6f 69 64 2a 29 3b |ex(const| void*);|
|00001190| 09 09 09 09 09 2f 2f 09 | 66 69 6e 64 20 74 68 65 |.....//.|find the|
|000011a0| 20 66 69 72 73 74 20 69 | 6e 64 65 78 20 6f 66 20 | first i|ndex of |
|000011b0| 61 6e 20 69 74 65 6d 20 | 28 6f 72 20 6b 42 79 74 |an item |(or kByt|
|000011c0| 65 49 74 65 6d 4e 6f 74 | 46 6f 75 6e 64 20 69 66 |eItemNot|Found if|
|000011d0| 20 6e 6f 74 20 66 6f 75 | 6e 64 29 0d 09 42 6f 6f | not fou|nd)..Boo|
|000011e0| 6c 65 61 6e 09 09 09 09 | 43 6f 6e 74 61 69 6e 73 |lean....|Contains|
|000011f0| 28 63 6f 6e 73 74 20 76 | 6f 69 64 2a 29 3b 09 09 |(const v|oid*);..|
|00001200| 09 09 09 2f 2f 20 69 73 | 20 74 68 69 73 20 69 74 |...// is| this it|
|00001210| 65 6d 20 69 6e 20 74 68 | 65 20 6c 69 73 74 20 61 |em in th|e list a|
|00001220| 74 20 61 6c 6c 3f 0d 09 | 73 68 6f 72 74 09 09 09 |t all?..|short...|
|00001230| 09 49 6e 64 65 78 28 63 | 6f 6e 73 74 20 76 6f 69 |.Index(c|onst voi|
|00001240| 64 2a 29 3b 0d 0d 09 76 | 6f 69 64 09 09 09 09 4c |d*);...v|oid....L|
|00001250| 6f 63 6b 4c 69 73 74 28 | 29 3b 09 09 09 09 09 09 |ockList(|);......|
|00001260| 09 09 2f 2f 20 4c 6f 63 | 6b 20 74 68 65 20 6c 69 |..// Loc|k the li|
|00001270| 73 74 2c 20 73 65 74 20 | 66 4c 6f 63 6b 65 64 0d |st, set |fLocked.|
|00001280| 09 76 6f 69 64 09 09 09 | 09 55 6e 6c 6f 63 6b 4c |.void...|.UnlockL|
|00001290| 69 73 74 28 29 3b 09 09 | 09 09 09 09 09 2f 2f 20 |ist();..|.....// |
|000012a0| 55 6e 6c 6f 63 6b 20 74 | 68 65 20 6c 69 73 74 2c |Unlock t|he list,|
|000012b0| 20 63 6c 65 61 72 20 66 | 4c 6f 63 6b 65 64 2c 20 | clear f|Locked, |
|000012c0| 61 6e 64 20 72 65 6d 6f | 76 65 20 66 72 6f 6d 20 |and remo|ve from |
|000012d0| 74 68 65 20 6c 69 73 74 | 20 6f 66 20 6c 6f 63 6b |the list| of lock|
|000012e0| 65 64 20 6c 69 73 74 73 | 0d 09 42 6f 6f 6c 65 61 |ed lists|..Boolea|
|000012f0| 6e 09 09 09 09 66 4c 6f | 63 6b 65 64 3b 09 09 09 |n....fLo|cked;...|
|00001300| 09 09 09 09 09 2f 2f 20 | 52 65 6d 65 6d 62 65 72 |.....// |Remember|
|00001310| 20 69 66 20 77 65 d5 72 | 65 20 63 75 72 72 65 6e | if we.r|e curren|
|00001320| 74 6c 79 20 6c 6f 63 6b | 65 64 20 28 73 61 76 65 |tly lock|ed (save|
|00001330| 73 20 63 61 6c 6c 69 6e | 67 20 6d 65 6d 6f 72 79 |s callin|g memory|
|00001340| 20 6d 61 6e 61 67 65 72 | 20 6a 75 73 74 20 74 6f | manager| just to|
|00001350| 20 66 69 6e 64 20 6f 75 | 74 29 0d 0d 09 76 6f 69 | find ou|t)...voi|
|00001360| 64 09 09 09 09 53 65 74 | 42 79 74 65 43 6f 75 6e |d....Set|ByteCoun|
|00001370| 74 28 73 69 7a 65 5f 74 | 2c 20 42 6f 6f 6c 65 61 |t(size_t|, Boolea|
|00001380| 6e 20 74 72 69 6d 29 3b | 0d 09 76 6f 69 64 09 09 |n trim);|..void..|
|00001390| 09 09 53 65 74 43 6f 75 | 6e 74 28 75 6e 73 69 67 |..SetCou|nt(unsig|
|000013a0| 6e 65 64 20 73 68 6f 72 | 74 20 63 6f 75 6e 74 29 |ned shor|t count)|
|000013b0| 3b 0d 09 76 6f 69 64 09 | 09 09 09 53 65 74 43 6f |;..void.|...SetCo|
|000013c0| 75 6e 74 4e 6f 54 72 69 | 6d 28 75 6e 73 69 67 6e |untNoTri|m(unsign|
|000013d0| 65 64 20 73 68 6f 72 74 | 20 63 6f 75 6e 74 29 3b |ed short| count);|
|000013e0| 0d 09 76 6f 69 64 09 09 | 09 09 47 75 65 73 73 28 |..void..|..Guess(|
|000013f0| 75 6e 73 69 67 6e 65 64 | 20 73 68 6f 72 74 20 6e |unsigned| short n|
|00001400| 65 77 53 69 7a 65 29 3b | 09 09 09 2f 2f a5 20 67 |ewSize);|...//. g|
|00001410| 75 65 73 73 20 74 68 61 | 74 20 74 68 65 72 65 20 |uess tha|t there |
|00001420| 61 72 65 20 67 6f 69 6e | 67 20 74 6f 20 62 65 20 |are goin|g to be |
|00001430| 63 6f 75 6e 74 20 69 74 | 65 6d 73 2c 20 77 69 6c |count it|ems, wil|
|00001440| 6c 20 66 61 69 6c 20 69 | 66 20 74 68 65 72 65 20 |l fail i|f there |
|00001450| 69 73 6e d5 74 20 65 6e | 6f 75 67 68 20 6d 65 6d |isn.t en|ough mem|
|00001460| 6f 72 79 0d 09 76 6f 69 | 64 09 09 09 09 54 72 69 |ory..voi|d....Tri|
|00001470| 6d 28 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |m(unsign|ed long |
|00001480| 63 6f 75 6e 74 20 3d 20 | 30 29 3b 09 09 09 2f 2f |count = |0);...//|
|00001490| 09 74 72 69 6d 20 6f 66 | 66 20 61 6e 79 20 77 61 |.trim of|f any wa|
|000014a0| 73 74 65 64 20 67 75 65 | 73 73 69 6e 67 20 73 70 |sted gue|ssing sp|
|000014b0| 61 63 65 0d 0d 09 50 74 | 72 09 09 09 09 09 53 74 |ace...Pt|r.....St|
|000014c0| 61 72 74 28 29 09 09 09 | 09 09 09 09 09 09 7b 20 |art()...|......{ |
|000014d0| 72 65 74 75 72 6e 20 66 | 4f 62 6a 65 63 74 42 6c |return f|ObjectBl|
|000014e0| 6f 63 6b 43 61 63 68 65 | 2e 53 74 61 72 74 28 29 |ockCache|.Start()|
|000014f0| 3b 09 7d 0d 0d 09 76 6f | 69 64 09 09 09 09 55 73 |;.}...vo|id....Us|
|00001500| 65 44 65 6c 65 74 65 4e | 6f 74 69 66 69 63 61 74 |eDeleteN|otificat|
|00001510| 69 6f 6e 28 29 3b 09 09 | 09 09 2f 2f 20 54 65 6c |ion();..|..// Tel|
|00001520| 6c 20 74 68 69 73 20 6c | 69 73 74 20 74 6f 20 72 |l this l|ist to r|
|00001530| 65 67 69 73 74 65 72 20 | 69 74 73 20 6d 65 6d 62 |egister |its memb|
|00001540| 65 72 73 20 66 6f 72 20 | 64 65 6c 65 74 65 20 6e |ers for |delete n|
|00001550| 6f 74 69 66 69 63 61 74 | 69 6f 6e 0d 09 76 69 72 |otificat|ion..vir|
|00001560| 74 75 61 6c 20 76 6f 69 | 64 09 09 49 74 65 6d 42 |tual voi|d..ItemB|
|00001570| 65 69 6e 67 44 65 6c 65 | 74 65 64 28 63 6f 6e 73 |eingDele|ted(cons|
|00001580| 74 20 54 4f 62 6a 65 63 | 74 2a 29 3b 09 09 2f 2f |t TObjec|t*);..//|
|00001590| 20 43 61 6c 6c 20 74 68 | 69 73 20 77 68 65 6e 20 | Call th|is when |
|000015a0| 61 20 6d 65 6d 62 65 72 | 20 6f 66 20 74 68 69 73 |a member| of this|
|000015b0| 20 6c 69 73 74 20 69 73 | 20 62 65 69 6e 67 20 64 | list is| being d|
|000015c0| 65 6c 65 74 65 64 0d 23 | 69 66 64 65 66 20 44 45 |eleted.#|ifdef DE|
|000015d0| 42 55 47 0d 09 76 6f 69 | 64 09 09 09 09 53 68 6f |BUG..voi|d....Sho|
|000015e0| 75 6c 64 4e 65 76 65 72 | 53 65 65 44 65 6c 65 74 |uldNever|SeeDelet|
|000015f0| 69 6f 6e 28 29 3b 09 09 | 09 09 2f 2f 20 54 65 6c |ion();..|..// Tel|
|00001600| 6c 20 74 68 69 73 20 6c | 69 73 74 20 74 68 61 74 |l this l|ist that|
|00001610| 20 77 65 20 64 6f 6e 27 | 74 20 65 78 70 65 63 74 | we don'|t expect|
|00001620| 20 74 6f 20 61 63 74 75 | 61 6c 6c 79 20 75 73 65 | to actu|ally use|
|00001630| 20 64 65 6c 65 74 65 20 | 6e 6f 74 69 66 69 63 61 | delete |notifica|
|00001640| 74 69 6f 6e 0d 09 76 6f | 69 64 09 09 09 09 41 73 |tion..vo|id....As|
|00001650| 73 65 72 74 4e 6f 4c 6f | 6f 70 73 28 29 3b 09 09 |sertNoLo|ops();..|
|00001660| 09 09 09 09 2f 2f 20 41 | 53 53 45 52 54 20 69 66 |....// A|SSERT if|
|00001670| 20 73 6f 6d 65 6f 6e 65 | 20 69 73 20 6c 6f 6f 70 | someone| is loop|
|00001680| 69 6e 67 20 6f 6e 20 74 | 68 69 73 20 6c 69 73 74 |ing on t|his list|
|00001690| 0d 23 65 6e 64 69 66 0d | 0d 0d 70 72 69 76 61 74 |.#endif.|..privat|
|000016a0| 65 3a 0d 09 76 6f 69 64 | 09 09 09 09 52 65 6d 6f |e:..void|....Remo|
|000016b0| 76 65 4e 6f 54 72 69 6d | 4e 6f 55 6e 72 65 67 69 |veNoTrim|NoUnregi|
|000016c0| 73 74 65 72 28 75 6e 73 | 69 67 6e 65 64 20 6c 6f |ster(uns|igned lo|
|000016d0| 6e 67 29 3b 0d 09 76 6f | 69 64 09 09 09 09 53 65 |ng);..vo|id....Se|
|000016e0| 74 53 69 7a 65 28 73 69 | 7a 65 5f 74 20 6e 65 77 |tSize(si|ze_t new|
|000016f0| 53 69 7a 65 29 3b 09 09 | 09 09 2f 2f 09 63 68 61 |Size);..|..//.cha|
|00001700| 6e 67 65 20 74 68 65 20 | 73 69 7a 65 20 6f 66 20 |nge the |size of |
|00001710| 66 44 61 74 61 0d 09 73 | 69 7a 65 5f 74 09 09 09 |fData..s|ize_t...|
|00001720| 09 42 79 74 65 53 69 7a | 65 28 29 3b 0d 0d 09 2f |.ByteSiz|e();.../|
|00001730| 2f 0d 09 2f 2f 20 2d 2d | 2d 20 46 69 65 6c 64 73 |/..// --|- Fields|
|00001740| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | -------|--------|
|00001750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001790| 2d 2d 2d 2d 2d 2d 0d 09 | 2f 2f 0d 70 72 6f 74 65 |------..|//.prote|
|000017a0| 63 74 65 64 3a 0d 0d 66 | 72 69 65 6e 64 20 63 6c |cted:..f|riend cl|
|000017b0| 61 73 73 20 54 4c 6f 6f | 70 3b 0d 09 75 6e 73 69 |ass TLoo|p;..unsi|
|000017c0| 67 6e 65 64 09 09 09 66 | 55 73 65 44 65 6c 65 74 |gned...f|UseDelet|
|000017d0| 65 4e 6f 74 69 66 69 63 | 61 74 69 6f 6e 20 3a 20 |eNotific|ation : |
|000017e0| 31 3b 09 09 09 09 2f 2f | 20 44 6f 65 73 20 74 68 |1;....//| Does th|
|000017f0| 69 73 20 6c 69 73 74 20 | 72 65 63 65 69 76 65 20 |is list |receive |
|00001800| 64 65 6c 65 74 65 20 6e | 6f 74 69 66 69 63 61 74 |delete n|otificat|
|00001810| 69 6f 6e 73 20 66 6f 72 | 20 69 74 73 20 69 74 65 |ions for| its ite|
|00001820| 6d 73 3f 0d 23 69 66 64 | 65 66 20 44 45 42 55 47 |ms?.#ifd|ef DEBUG|
|00001830| 0d 09 75 6e 73 69 67 6e | 65 64 09 09 09 66 53 68 |..unsign|ed...fSh|
|00001840| 6f 75 6c 64 4e 65 76 65 | 72 53 65 65 44 65 6c 65 |ouldNeve|rSeeDele|
|00001850| 74 69 6f 6e 20 3a 20 31 | 3b 09 09 09 2f 2f 20 45 |tion : 1|;...// E|
|00001860| 78 70 65 63 74 20 74 68 | 61 74 20 6f 62 6a 65 63 |xpect th|at objec|
|00001870| 74 73 20 73 68 6f 75 6c | 64 20 6e 65 76 65 72 20 |ts shoul|d never |
|00001880| 62 65 20 64 65 6c 65 74 | 65 64 20 69 66 20 69 6e |be delet|ed if in|
|00001890| 20 74 68 69 73 20 6c 69 | 73 74 0d 09 75 6e 73 69 | this li|st..unsi|
|000018a0| 67 6e 65 64 20 6c 6f 6e | 67 09 09 66 53 69 67 6e |gned lon|g..fSign|
|000018b0| 61 74 75 72 65 3b 09 09 | 09 09 09 09 09 09 2f 2f |ature;..|......//|
|000018c0| 09 3d 20 27 4c 69 73 74 | 27 0d 09 75 6e 73 69 67 |.= 'List|'..unsig|
|000018d0| 6e 65 64 20 6c 6f 6e 67 | 09 09 66 4e 75 6d 4c 6f |ned long|..fNumLo|
|000018e0| 6f 70 73 3b 09 09 09 09 | 09 09 09 09 2f 2f 20 6e |ops;....|....// n|
|000018f0| 75 6d 62 65 72 20 6f 66 | 20 54 4c 6f 6f 70 73 20 |umber of| TLoops |
|00001900| 61 63 74 69 76 65 20 6f | 6e 20 74 68 69 73 20 6c |active o|n this l|
|00001910| 69 73 74 0d 23 65 6e 64 | 69 66 0d 09 73 69 7a 65 |ist.#end|if..size|
|00001920| 5f 74 09 09 09 09 66 42 | 79 74 65 43 6f 75 6e 74 |_t....fB|yteCount|
|00001930| 3b 09 09 09 09 09 09 09 | 09 2f 2f 20 74 68 65 20 |;.......|.// the |
|00001940| 62 79 74 65 20 63 6f 75 | 6e 74 20 6f 66 20 69 74 |byte cou|nt of it|
|00001950| 65 6d 73 20 69 6e 20 74 | 68 65 20 6c 69 73 74 0d |ems in t|he list.|
|00001960| 09 7d 3b 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.};..//-|--------|
|00001970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|000019c0| 2f 2f 20 54 4c 69 73 74 | 3a 3a 43 6f 6e 73 74 72 |// TList|::Constr|
|000019d0| 75 63 74 6f 72 3a 20 0d | 2f 2f 2d 2d 2d 2d 2d 2d |uctor: .|//------|
|000019e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a30| 2d 2d 0d 69 6e 6c 69 6e | 65 20 76 6f 69 64 20 54 |--.inlin|e void T|
|00001a40| 4c 69 73 74 3a 3a 43 6f | 6e 73 74 72 75 63 74 6f |List::Co|nstructo|
|00001a50| 72 28 29 0d 09 7b 0d 23 | 69 66 64 65 66 20 44 45 |r()..{.#|ifdef DE|
|00001a60| 42 55 47 0d 09 66 53 69 | 67 6e 61 74 75 72 65 20 |BUG..fSi|gnature |
|00001a70| 3d 20 27 4c 69 73 74 27 | 3b 0d 23 65 6e 64 69 66 |= 'List'|;.#endif|
|00001a80| 0d 09 7d 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..}..//-|--------|
|00001a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00001ae0| 2f 2f 20 54 4c 69 73 74 | 3a 3a 42 79 74 65 53 69 |// TList|::ByteSi|
|00001af0| 7a 65 3a 20 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ze: .//-|--------|
|00001b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00001b50| 69 6e 6c 69 6e 65 20 73 | 69 7a 65 5f 74 20 54 4c |inline s|ize_t TL|
|00001b60| 69 73 74 3a 3a 42 79 74 | 65 53 69 7a 65 28 29 20 |ist::Byt|eSize() |
|00001b70| 09 09 09 09 09 09 0d 09 | 7b 20 0d 09 72 65 74 75 |........|{ ..retu|
|00001b80| 72 6e 20 66 4f 62 6a 65 | 63 74 42 6c 6f 63 6b 43 |rn fObje|ctBlockC|
|00001b90| 61 63 68 65 2e 55 73 65 | 64 28 29 3b 0d 09 7d 0d |ache.Use|d();..}.|
|00001ba0| 0d 23 69 66 6e 64 65 66 | 20 41 56 4f 49 44 49 4e |.#ifndef| AVOIDIN|
|00001bb0| 4c 49 4e 45 53 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |LINES.//|--------|
|00001bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c10| 0d 2f 2f 20 54 4c 69 73 | 74 3a 3a 42 79 74 65 49 |.// TLis|t::ByteI|
|00001c20| 74 68 3a 20 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |th: .//-|--------|
|00001c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 09 |--------|-------.|
|00001c80| 0d 69 6e 6c 69 6e 65 20 | 76 6f 69 64 2a 20 54 4c |.inline |void* TL|
|00001c90| 69 73 74 3a 3a 42 79 74 | 65 49 74 68 28 75 6e 73 |ist::Byt|eIth(uns|
|00001ca0| 69 67 6e 65 64 20 6c 6f | 6e 67 20 62 79 74 65 49 |igned lo|ng byteI|
|00001cb0| 6e 64 65 78 29 09 0d 09 | 7b 20 0d 09 72 65 74 75 |ndex)...|{ ..retu|
|00001cc0| 72 6e 20 28 76 6f 69 64 | 2a 29 20 66 4f 62 6a 65 |rn (void|*) fObje|
|00001cd0| 63 74 42 6c 6f 63 6b 43 | 61 63 68 65 2e 47 65 74 |ctBlockC|ache.Get|
|00001ce0| 55 49 6e 74 33 32 28 62 | 79 74 65 49 6e 64 65 78 |UInt32(b|yteIndex|
|00001cf0| 29 3b 0d 09 7d 0d 23 65 | 6e 64 69 66 20 2f 2f 20 |);..}.#e|ndif // |
|00001d00| 41 56 4f 49 44 49 4e 4c | 49 4e 45 53 0d 0d 2f 2f |AVOIDINL|INES..//|
|00001d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d60| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 2f 2f 20 54 4c 69 73 |--------|.// TLis|
|00001d70| 74 3a 3a 42 79 74 65 43 | 6f 75 6e 74 3a 20 0d 2f |t::ByteC|ount: ./|
|00001d80| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00001d90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001da0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001db0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001dd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 09 09 0d 69 6e 6c 69 |--------|-...inli|
|00001de0| 6e 65 20 6c 6f 6e 67 20 | 54 4c 69 73 74 3a 3a 42 |ne long |TList::B|
|00001df0| 79 74 65 43 6f 75 6e 74 | 28 29 09 09 09 09 09 09 |yteCount|()......|
|00001e00| 0d 09 7b 0d 09 72 65 74 | 75 72 6e 20 66 42 79 74 |..{..ret|urn fByt|
|00001e10| 65 43 6f 75 6e 74 3b 0d | 09 7d 0d 0d 2f 2f 2d 2d |eCount;.|.}..//--|
|00001e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e70| 2d 2d 2d 2d 2d 2d 0d 2f | 2f 20 54 4c 69 73 74 3a |------./|/ TList:|
|00001e80| 3a 43 6f 75 6e 74 3a 20 | 0d 2f 2f 2d 2d 2d 2d 2d |:Count: |.//-----|
|00001e90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ee0| 2d 2d 2d 09 09 09 0d 69 | 6e 6c 69 6e 65 20 6c 6f |---....i|nline lo|
|00001ef0| 6e 67 20 54 4c 69 73 74 | 3a 3a 43 6f 75 6e 74 28 |ng TList|::Count(|
|00001f00| 29 09 09 09 09 09 09 09 | 0d 09 7b 0d 09 72 65 74 |).......|..{..ret|
|00001f10| 75 72 6e 20 66 42 79 74 | 65 43 6f 75 6e 74 20 3e |urn fByt|eCount >|
|00001f20| 3e 20 32 3b 0d 09 7d 0d | 0d 2f 2f 2d 2d 2d 2d 2d |> 2;..}.|.//-----|
|00001f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f80| 2d 2d 2d 0d 2f 2f 20 54 | 4c 69 73 74 3a 3a 45 6d |---.// T|List::Em|
|00001f90| 70 74 79 3a 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |pty: .//|--------|
|00001fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fe0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ff0| 09 09 09 0d 69 6e 6c 69 | 6e 65 20 42 6f 6f 6c 65 |....inli|ne Boole|
|00002000| 61 6e 20 54 4c 69 73 74 | 3a 3a 45 6d 70 74 79 28 |an TList|::Empty(|
|00002010| 29 09 09 09 09 09 09 09 | 0d 09 7b 0d 09 72 65 74 |).......|..{..ret|
|00002020| 75 72 6e 20 28 66 42 79 | 74 65 43 6f 75 6e 74 20 |urn (fBy|teCount |
|00002030| 3d 3d 20 30 29 3b 0d 09 | 7d 0d 0d 2f 2f 2d 2d 2d |== 0);..|}..//---|
|00002040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002090| 2d 2d 2d 2d 2d 0d 2f 2f | 20 54 4c 69 73 74 3a 3a |-----.//| TList::|
|000020a0| 4c 61 73 74 42 79 74 65 | 49 6e 64 65 78 3a 20 0d |LastByte|Index: .|
|000020b0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|000020c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 09 09 09 0d 69 6e |--------|--....in|
|00002110| 6c 69 6e 65 20 6c 6f 6e | 67 20 54 4c 69 73 74 3a |line lon|g TList:|
|00002120| 3a 4c 61 73 74 42 79 74 | 65 49 6e 64 65 78 28 29 |:LastByt|eIndex()|
|00002130| 09 09 09 09 09 0d 09 7b | 0d 09 72 65 74 75 72 6e |.......{|..return|
|00002140| 20 66 42 79 74 65 43 6f | 75 6e 74 2d 34 3b 0d 09 | fByteCo|unt-4;..|
|00002150| 7d 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}..//---|--------|
|00002160| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002170| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//|
|000021b0| 20 54 4c 69 73 74 3a 3a | 49 74 68 3a 20 0d 2f 2f | TList::|Ith: .//|
|000021c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002210| 2d 2d 2d 2d 2d 2d 2d 2d | 09 09 09 0d 69 6e 6c 69 |--------|....inli|
|00002220| 6e 65 20 76 6f 69 64 2a | 20 54 4c 69 73 74 3a 3a |ne void*| TList::|
|00002230| 49 74 68 28 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |Ith(unsi|gned sho|
|00002240| 72 74 20 69 6e 64 65 78 | 29 09 09 0d 09 7b 0d 09 |rt index|)....{..|
|00002250| 72 65 74 75 72 6e 20 42 | 79 74 65 49 74 68 28 69 |return B|yteIth(i|
|00002260| 6e 64 65 78 20 3c 3c 20 | 32 29 3b 0d 09 7d 0d 0d |ndex << |2);..}..|
|00002270| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00002280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4c |--------|--.// TL|
|000022d0| 69 73 74 3a 3a 49 6e 64 | 65 78 3a 20 0d 2f 2f 2d |ist::Ind|ex: .//-|
|000022e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002330| 2d 2d 2d 2d 2d 2d 2d 09 | 09 09 0d 69 6e 6c 69 6e |-------.|...inlin|
|00002340| 65 20 73 68 6f 72 74 20 | 54 4c 69 73 74 3a 3a 49 |e short |TList::I|
|00002350| 6e 64 65 78 28 63 6f 6e | 73 74 20 76 6f 69 64 2a |ndex(con|st void*|
|00002360| 20 69 74 65 6d 29 09 09 | 09 0d 09 7b 0d 09 72 65 | item)..|...{..re|
|00002370| 74 75 72 6e 20 42 79 74 | 65 49 6e 64 65 78 28 69 |turn Byt|eIndex(i|
|00002380| 74 65 6d 29 20 3e 3e 20 | 32 3b 0d 09 7d 0d 0d 2f |tem) >> |2;..}../|
|00002390| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|000023a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 54 4c 69 |--------|-.// TLi|
|000023f0| 73 74 3a 3a 43 6f 6e 74 | 61 69 6e 73 3a 20 0d 2f |st::Cont|ains: ./|
|00002400| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00002410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002430| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002440| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 09 09 09 0d 69 6e 6c |--------|-....inl|
|00002460| 69 6e 65 20 42 6f 6f 6c | 65 61 6e 20 54 4c 69 73 |ine Bool|ean TLis|
|00002470| 74 3a 3a 43 6f 6e 74 61 | 69 6e 73 28 63 6f 6e 73 |t::Conta|ins(cons|
|00002480| 74 20 76 6f 69 64 2a 20 | 69 74 65 6d 29 0d 09 7b |t void* |item)..{|
|00002490| 0d 09 72 65 74 75 72 6e | 20 28 42 79 74 65 49 6e |..return| (ByteIn|
|000024a0| 64 65 78 28 69 74 65 6d | 29 20 21 3d 20 6b 42 79 |dex(item|) != kBy|
|000024b0| 74 65 49 74 65 6d 4e 6f | 74 46 6f 75 6e 64 29 3b |teItemNo|tFound);|
|000024c0| 0d 09 7d 20 0d 0d 23 69 | 66 6e 64 65 66 20 41 56 |..} ..#i|fndef AV|
|000024d0| 4f 49 44 49 4e 4c 49 4e | 45 53 0d 2f 2f 2d 2d 2d |OIDINLIN|ES.//---|
|000024e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000024f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002500| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002530| 2d 2d 2d 2d 2d 0d 2f 2f | 20 54 4c 69 73 74 3a 3a |-----.//| TList::|
|00002540| 53 65 74 53 69 7a 65 3a | 20 0d 2f 2f 2d 2d 2d 2d |SetSize:| .//----|
|00002550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000025a0| 2d 2d 2d 2d 0d 69 6e 6c | 69 6e 65 20 76 6f 69 64 |----.inl|ine void|
|000025b0| 20 54 4c 69 73 74 3a 3a | 53 65 74 53 69 7a 65 28 | TList::|SetSize(|
|000025c0| 73 69 7a 65 5f 74 20 75 | 73 65 64 29 0d 09 7b 0d |size_t u|sed)..{.|
|000025d0| 09 69 66 20 28 75 73 65 | 64 20 21 3d 20 42 79 74 |.if (use|d != Byt|
|000025e0| 65 53 69 7a 65 28 29 29 | 0d 09 09 66 4f 62 6a 65 |eSize())|...fObje|
|000025f0| 63 74 42 6c 6f 63 6b 43 | 61 63 68 65 2e 53 65 74 |ctBlockC|ache.Set|
|00002600| 55 73 65 64 28 75 73 65 | 64 29 3b 0d 09 7d 20 0d |Used(use|d);..} .|
|00002610| 23 65 6e 64 69 66 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |#endif..|//------|
|00002620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002640| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002650| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002670| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 53 65 74 |--.// TL|ist::Set|
|00002680| 42 79 74 65 43 6f 75 6e | 74 3a 20 0d 2f 2f 2d 2d |ByteCoun|t: .//--|
|00002690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026e0| 2d 2d 2d 2d 2d 2d 0d 69 | 6e 6c 69 6e 65 20 76 6f |------.i|nline vo|
|000026f0| 69 64 20 54 4c 69 73 74 | 3a 3a 53 65 74 42 79 74 |id TList|::SetByt|
|00002700| 65 43 6f 75 6e 74 28 73 | 69 7a 65 5f 74 20 6e 65 |eCount(s|ize_t ne|
|00002710| 77 42 79 74 65 43 6f 75 | 6e 74 2c 20 42 6f 6f 6c |wByteCou|nt, Bool|
|00002720| 65 61 6e 20 74 72 69 6d | 29 0d 09 7b 0d 09 69 66 |ean trim|)..{..if|
|00002730| 20 28 74 72 69 6d 20 7c | 7c 20 28 6e 65 77 42 79 | (trim ||| (newBy|
|00002740| 74 65 43 6f 75 6e 74 20 | 3e 20 66 42 79 74 65 43 |teCount |> fByteC|
|00002750| 6f 75 6e 74 29 29 0d 09 | 09 53 65 74 53 69 7a 65 |ount))..|.SetSize|
|00002760| 28 6e 65 77 42 79 74 65 | 43 6f 75 6e 74 29 3b 0d |(newByte|Count);.|
|00002770| 09 66 42 79 74 65 43 6f | 75 6e 74 20 3d 20 6e 65 |.fByteCo|unt = ne|
|00002780| 77 42 79 74 65 43 6f 75 | 6e 74 3b 0d 09 7d 0d 0d |wByteCou|nt;..}..|
|00002790| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|000027a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000027b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000027c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000027d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000027e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4c |--------|--.// TL|
|000027f0| 69 73 74 3a 3a 4c 6f 63 | 6b 4c 69 73 74 3a 20 0d |ist::Loc|kList: .|
|00002800| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00002810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 69 6e 6c 69 6e |--------|--.inlin|
|00002860| 65 20 76 6f 69 64 20 54 | 4c 69 73 74 3a 3a 4c 6f |e void T|List::Lo|
|00002870| 63 6b 4c 69 73 74 28 29 | 0d 09 7b 0d 09 66 4c 6f |ckList()|..{..fLo|
|00002880| 63 6b 65 64 20 3d 20 74 | 72 75 65 3b 09 09 09 09 |cked = t|rue;....|
|00002890| 09 09 09 09 2f 2f 20 72 | 65 6d 65 6d 62 65 72 20 |....// r|emember |
|000028a0| 74 68 61 74 20 77 65 20 | 6c 6f 63 6b 65 64 20 69 |that we |locked i|
|000028b0| 74 0d 09 66 4f 62 6a 65 | 63 74 42 6c 6f 63 6b 43 |t..fObje|ctBlockC|
|000028c0| 61 63 68 65 2e 4c 6f 63 | 6b 28 29 3b 0d 09 7d 20 |ache.Loc|k();..} |
|000028d0| 2f 2f 20 54 4c 69 73 74 | 3a 3a 4c 6f 63 6b 4c 69 |// TList|::LockLi|
|000028e0| 73 74 20 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |st ..//-|--------|
|000028f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00002940| 2f 2f 20 54 4c 69 73 74 | 3a 3a 55 6e 6c 6f 63 6b |// TList|::Unlock|
|00002950| 4c 69 73 74 3a 20 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |List: ./|/-------|
|00002960| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000029a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000029b0| 2d 0d 69 6e 6c 69 6e 65 | 20 76 6f 69 64 20 54 4c |-.inline| void TL|
|000029c0| 69 73 74 3a 3a 55 6e 6c | 6f 63 6b 4c 69 73 74 28 |ist::Unl|ockList(|
|000029d0| 29 0d 09 7b 0d 09 66 4c | 6f 63 6b 65 64 20 3d 20 |)..{..fL|ocked = |
|000029e0| 66 61 6c 73 65 3b 20 09 | 09 09 09 09 09 09 2f 2f |false; .|......//|
|000029f0| 20 61 6e 64 20 72 65 6d | 65 6d 62 65 72 20 74 68 | and rem|ember th|
|00002a00| 61 74 20 69 74 d5 73 20 | 75 6e 6c 6f 63 6b 65 64 |at it.s |unlocked|
|00002a10| 0d 09 66 4f 62 6a 65 63 | 74 42 6c 6f 63 6b 43 61 |..fObjec|tBlockCa|
|00002a20| 63 68 65 2e 55 6e 6c 6f | 63 6b 28 29 3b 0d 09 7d |che.Unlo|ck();..}|
|00002a30| 20 2f 2f 20 54 4c 69 73 | 74 3a 3a 55 6e 6c 6f 63 | // TLis|t::Unloc|
|00002a40| 6b 4c 69 73 74 20 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |kList ..|//------|
|00002a50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002aa0| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 4d 61 6b |--.// TL|ist::Mak|
|00002ab0| 65 3a 20 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |e: .//--|--------|
|00002ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 69 |--------|------.i|
|00002b10| 6e 6c 69 6e 65 20 54 4c | 69 73 74 2a 20 54 4c 69 |nline TL|ist* TLi|
|00002b20| 73 74 3a 3a 4d 61 6b 65 | 28 29 0d 09 7b 0d 09 72 |st::Make|()..{..r|
|00002b30| 65 74 75 72 6e 20 4d 61 | 6b 65 28 30 2c 20 66 61 |eturn Ma|ke(0, fa|
|00002b40| 6c 73 65 29 3b 0d 09 7d | 20 2f 2f 20 54 4c 69 73 |lse);..}| // TLis|
|00002b50| 74 3a 3a 4d 61 6b 65 20 | 0d 0d 2f 2f 2d 2d 2d 2d |t::Make |..//----|
|00002b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ba0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bb0| 2d 2d 2d 2d 0d 2f 2f 20 | 54 4c 69 73 74 3a 3a 4d |----.// |TList::M|
|00002bc0| 61 6b 65 3a 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |ake: .//|--------|
|00002bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c20| 0d 69 6e 6c 69 6e 65 20 | 54 4c 69 73 74 2a 20 54 |.inline |TList* T|
|00002c30| 4c 69 73 74 3a 3a 4d 61 | 6b 65 28 75 6e 73 69 67 |List::Ma|ke(unsig|
|00002c40| 6e 65 64 20 6c 6f 6e 67 | 20 20 67 75 65 73 73 43 |ned long| guessC|
|00002c50| 6f 75 6e 74 29 0d 09 7b | 0d 09 72 65 74 75 72 6e |ount)..{|..return|
|00002c60| 20 4d 61 6b 65 28 67 75 | 65 73 73 43 6f 75 6e 74 | Make(gu|essCount|
|00002c70| 2c 20 66 61 6c 73 65 29 | 3b 0d 09 7d 20 2f 2f 20 |, false)|;..} // |
|00002c80| 54 4c 69 73 74 3a 3a 4d | 61 6b 65 20 0d 0d 2f 2f |TList::M|ake ..//|
|00002c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 2f 2f 20 54 4c 69 73 |--------|.// TLis|
|00002cf0| 74 3a 3a 4d 61 6b 65 49 | 6e 53 79 73 74 65 6d 48 |t::MakeI|nSystemH|
|00002d00| 65 61 70 3a 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |eap: .//|--------|
|00002d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d60| 0d 69 6e 6c 69 6e 65 20 | 54 4c 69 73 74 2a 20 54 |.inline |TList* T|
|00002d70| 4c 69 73 74 3a 3a 4d 61 | 6b 65 49 6e 53 79 73 74 |List::Ma|keInSyst|
|00002d80| 65 6d 48 65 61 70 28 29 | 0d 09 7b 0d 09 72 65 74 |emHeap()|..{..ret|
|00002d90| 75 72 6e 20 4d 61 6b 65 | 28 30 2c 20 74 72 75 65 |urn Make|(0, true|
|00002da0| 29 3b 0d 09 7d 20 2f 2f | 20 54 4c 69 73 74 3a 3a |);..} //| TList::|
|00002db0| 4d 61 6b 65 49 6e 53 79 | 73 74 65 6d 48 65 61 70 |MakeInSy|stemHeap|
|00002dc0| 20 0d 0d 23 69 66 6e 64 | 65 66 20 41 56 4f 49 44 | ..#ifnd|ef AVOID|
|00002dd0| 49 4e 4c 49 4e 45 53 0d | 2f 2f 2d 2d 2d 2d 2d 2d |INLINES.|//------|
|00002de0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002df0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e30| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 41 70 70 |--.// TL|ist::App|
|00002e40| 65 6e 64 3a 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |end: .//|--------|
|00002e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ea0| 0d 69 6e 6c 69 6e 65 20 | 76 6f 69 64 20 54 4c 69 |.inline |void TLi|
|00002eb0| 73 74 3a 3a 41 70 70 65 | 6e 64 28 76 6f 69 64 2a |st::Appe|nd(void*|
|00002ec0| 20 61 64 64 29 0d 09 7b | 0d 09 49 6e 73 65 72 74 | add)..{|..Insert|
|00002ed0| 28 61 64 64 2c 20 66 42 | 79 74 65 43 6f 75 6e 74 |(add, fB|yteCount|
|00002ee0| 29 3b 0d 09 7d 20 2f 2f | 20 54 4c 69 73 74 3a 3a |);..} //| TList::|
|00002ef0| 41 70 70 65 6e 64 20 0d | 0d 2f 2f 2d 2d 2d 2d 2d |Append .|.//-----|
|00002f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f50| 2d 2d 2d 0d 2f 2f 20 54 | 4c 69 73 74 3a 3a 41 64 |---.// T|List::Ad|
|00002f60| 64 3a 20 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |d: .//--|--------|
|00002f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 69 |--------|------.i|
|00002fc0| 6e 6c 69 6e 65 20 76 6f | 69 64 20 54 4c 69 73 74 |nline vo|id TList|
|00002fd0| 3a 3a 41 64 64 28 76 6f | 69 64 2a 20 61 64 64 29 |::Add(vo|id* add)|
|00002fe0| 0d 09 7b 0d 09 41 70 70 | 65 6e 64 28 61 64 64 29 |..{..App|end(add)|
|00002ff0| 3b 20 0d 09 7d 20 2f 2f | 20 54 4c 69 73 74 3a 3a |; ..} //| TList::|
|00003000| 41 64 64 20 0d 23 65 6e | 64 69 66 0d 0d 2f 2f 2d |Add .#en|dif..//-|
|00003010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003060| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 20 54 4c 69 73 74 |-------.|// TList|
|00003070| 3a 3a 52 65 70 6c 61 63 | 65 3a 20 0d 2f 2f 0d 2f |::Replac|e: .//./|
|00003080| 2f 20 52 65 70 6c 61 63 | 65 20 74 68 65 20 66 69 |/ Replac|e the fi|
|00003090| 72 73 74 20 69 6e 73 74 | 61 6e 63 65 20 6f 66 20 |rst inst|ance of |
|000030a0| 6f 6c 64 49 74 65 6d 20 | 77 69 74 68 20 6e 65 77 |oldItem |with new|
|000030b0| 49 74 65 6d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |Item.//-|--------|
|000030c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00003110| 69 6e 6c 69 6e 65 20 76 | 6f 69 64 20 54 4c 69 73 |inline v|oid TLis|
|00003120| 74 3a 3a 52 65 70 6c 61 | 63 65 28 63 6f 6e 73 74 |t::Repla|ce(const|
|00003130| 20 76 6f 69 64 2a 20 6f | 6c 64 49 74 65 6d 2c 20 | void* o|ldItem, |
|00003140| 76 6f 69 64 2a 20 6e 65 | 77 49 74 65 6d 29 0d 09 |void* ne|wItem)..|
|00003150| 7b 0d 09 6c 6f 6e 67 20 | 69 6e 64 65 78 20 3d 20 |{..long |index = |
|00003160| 42 79 74 65 49 6e 64 65 | 78 28 6f 6c 64 49 74 65 |ByteInde|x(oldIte|
|00003170| 6d 29 3b 0d 09 2f 2f 20 | 2a 2a 2a 20 77 68 61 74 |m);..// |*** what|
|00003180| 20 69 66 20 6e 6f 74 20 | 66 6f 75 6e 64 3f 0d 09 | if not |found?..|
|00003190| 52 65 70 6c 61 63 65 28 | 69 6e 64 65 78 2c 20 6e |Replace(|index, n|
|000031a0| 65 77 49 74 65 6d 29 3b | 0d 09 7d 20 2f 2f 20 54 |ewItem);|..} // T|
|000031b0| 4c 69 73 74 3a 3a 52 65 | 70 6c 61 63 65 20 0d 0d |List::Re|place ..|
|000031c0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|000031d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000031e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000031f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4c |--------|--.// TL|
|00003220| 69 73 74 3a 3a 46 69 72 | 73 74 3a 20 0d 2f 2f 2d |ist::Fir|st: .//-|
|00003230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003280| 2d 2d 2d 2d 2d 2d 2d 0d | 69 6e 6c 69 6e 65 20 76 |-------.|inline v|
|00003290| 6f 69 64 2a 20 54 4c 69 | 73 74 3a 3a 46 69 72 73 |oid* TLi|st::Firs|
|000032a0| 74 28 29 0d 09 7b 0d 09 | 72 65 74 75 72 6e 20 45 |t()..{..|return E|
|000032b0| 6d 70 74 79 28 29 20 3f | 20 6e 69 6c 20 3a 20 42 |mpty() ?| nil : B|
|000032c0| 79 74 65 49 74 68 28 30 | 29 3b 0d 09 7d 20 2f 2f |yteIth(0|);..} //|
|000032d0| 20 54 4c 69 73 74 3a 3a | 46 69 72 73 74 20 0d 0d | TList::|First ..|
|000032e0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|000032f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4c |--------|--.// TL|
|00003340| 69 73 74 3a 3a 4c 61 73 | 74 3a 20 0d 2f 2f 2d 2d |ist::Las|t: .//--|
|00003350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003370| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003380| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000033a0| 2d 2d 2d 2d 2d 2d 0d 69 | 6e 6c 69 6e 65 20 76 6f |------.i|nline vo|
|000033b0| 69 64 2a 20 54 4c 69 73 | 74 3a 3a 4c 61 73 74 28 |id* TLis|t::Last(|
|000033c0| 29 0d 09 7b 0d 09 72 65 | 74 75 72 6e 20 45 6d 70 |)..{..re|turn Emp|
|000033d0| 74 79 28 29 20 3f 20 6e | 69 6c 20 3a 20 42 79 74 |ty() ? n|il : Byt|
|000033e0| 65 49 74 68 28 4c 61 73 | 74 42 79 74 65 49 6e 64 |eIth(Las|tByteInd|
|000033f0| 65 78 28 29 29 3b 0d 09 | 7d 20 2f 2f 20 54 4c 69 |ex());..|} // TLi|
|00003400| 73 74 3a 3a 4c 61 73 74 | 20 0d 0d 2f 2f 2d 2d 2d |st::Last| ..//---|
|00003410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003430| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003440| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003460| 2d 2d 2d 2d 2d 0d 2f 2f | 20 54 4c 69 73 74 3a 3a |-----.//| TList::|
|00003470| 53 65 74 43 6f 75 6e 74 | 3a 20 0d 2f 2f 2d 2d 2d |SetCount|: .//---|
|00003480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034d0| 2d 2d 2d 2d 2d 0d 69 6e | 6c 69 6e 65 20 76 6f 69 |-----.in|line voi|
|000034e0| 64 20 54 4c 69 73 74 3a | 3a 53 65 74 43 6f 75 6e |d TList:|:SetCoun|
|000034f0| 74 28 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |t(unsign|ed short|
|00003500| 20 6e 65 77 43 6f 75 6e | 74 29 0d 09 7b 0d 09 53 | newCoun|t)..{..S|
|00003510| 65 74 42 79 74 65 43 6f | 75 6e 74 28 6e 65 77 43 |etByteCo|unt(newC|
|00003520| 6f 75 6e 74 20 3c 3c 20 | 32 2c 20 74 72 75 65 29 |ount << |2, true)|
|00003530| 3b 0d 09 7d 20 2f 2f 20 | 54 4c 69 73 74 3a 3a 53 |;..} // |TList::S|
|00003540| 65 74 43 6f 75 6e 74 20 | 0d 0d 2f 2f 2d 2d 2d 2d |etCount |..//----|
|00003550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000035a0| 2d 2d 2d 2d 0d 2f 2f 20 | 54 4c 69 73 74 3a 3a 53 |----.// |TList::S|
|000035b0| 65 74 43 6f 75 6e 74 4e | 6f 54 72 69 6d 3a 20 0d |etCountN|oTrim: .|
|000035c0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|000035d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000035e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000035f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 69 6e 6c 69 6e |--------|--.inlin|
|00003620| 65 20 76 6f 69 64 20 54 | 4c 69 73 74 3a 3a 53 65 |e void T|List::Se|
|00003630| 74 43 6f 75 6e 74 4e 6f | 54 72 69 6d 28 75 6e 73 |tCountNo|Trim(uns|
|00003640| 69 67 6e 65 64 20 73 68 | 6f 72 74 20 6e 65 77 43 |igned sh|ort newC|
|00003650| 6f 75 6e 74 29 0d 09 7b | 0d 09 53 65 74 42 79 74 |ount)..{|..SetByt|
|00003660| 65 43 6f 75 6e 74 28 6e | 65 77 43 6f 75 6e 74 20 |eCount(n|ewCount |
|00003670| 3c 3c 20 32 2c 20 66 61 | 6c 73 65 29 3b 0d 09 7d |<< 2, fa|lse);..}|
|00003680| 20 2f 2f 20 54 4c 69 73 | 74 3a 3a 53 65 74 43 6f | // TLis|t::SetCo|
|00003690| 75 6e 74 4e 6f 54 72 69 | 6d 20 0d 0d 23 69 66 64 |untNoTri|m ..#ifd|
|000036a0| 65 66 20 44 45 42 55 47 | 0d 2f 2f 2d 2d 2d 2d 2d |ef DEBUG|.//-----|
|000036b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003700| 2d 2d 2d 0d 2f 2f 20 54 | 4c 69 73 74 3a 3a 53 68 |---.// T|List::Sh|
|00003710| 6f 75 6c 64 4e 65 76 65 | 72 53 65 65 44 65 6c 65 |ouldNeve|rSeeDele|
|00003720| 74 69 6f 6e 3a 20 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |tion: ./|/-------|
|00003730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003780| 2d 0d 69 6e 6c 69 6e 65 | 20 76 6f 69 64 20 54 4c |-.inline| void TL|
|00003790| 69 73 74 3a 3a 53 68 6f | 75 6c 64 4e 65 76 65 72 |ist::Sho|uldNever|
|000037a0| 53 65 65 44 65 6c 65 74 | 69 6f 6e 28 29 0d 09 7b |SeeDelet|ion()..{|
|000037b0| 0d 09 66 53 68 6f 75 6c | 64 4e 65 76 65 72 53 65 |..fShoul|dNeverSe|
|000037c0| 65 44 65 6c 65 74 69 6f | 6e 20 3d 20 74 72 75 65 |eDeletio|n = true|
|000037d0| 3b 0d 09 69 66 28 66 55 | 73 65 44 65 6c 65 74 65 |;..if(fU|seDelete|
|000037e0| 4e 6f 74 69 66 69 63 61 | 74 69 6f 6e 20 3d 3d 20 |Notifica|tion == |
|000037f0| 66 61 6c 73 65 29 0d 09 | 09 74 68 69 73 2d 3e 55 |false)..|.this->U|
|00003800| 73 65 44 65 6c 65 74 65 | 4e 6f 74 69 66 69 63 61 |seDelete|Notifica|
|00003810| 74 69 6f 6e 28 29 3b 0d | 09 7d 20 2f 2f 20 54 4c |tion();.|.} // TL|
|00003820| 69 73 74 3a 3a 53 68 6f | 75 6c 64 4e 65 76 65 72 |ist::Sho|uldNever|
|00003830| 53 65 65 44 65 6c 65 74 | 69 6f 6e 20 0d 23 65 6e |SeeDelet|ion .#en|
|00003840| 64 69 66 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |dif..//-|--------|
|00003850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|000038a0| 2f 2f 20 54 68 65 20 44 | 45 43 4c 41 52 45 4c 49 |// The D|ECLARELI|
|000038b0| 53 54 20 6d 61 63 72 6f | 20 63 61 6e 20 62 65 20 |ST macro| can be |
|000038c0| 75 73 65 64 20 69 6e 20 | 61 20 68 65 61 64 65 72 |used in |a header|
|000038d0| 20 66 69 6c 65 20 74 6f | 20 64 65 63 6c 61 72 65 | file to| declare|
|000038e0| 20 61 20 6e 65 77 20 6c | 69 73 74 20 74 79 70 65 | a new l|ist type|
|000038f0| 2e 0d 2f 2f 09 55 73 69 | 6e 67 20 69 74 20 61 76 |..//.Usi|ng it av|
|00003900| 6f 69 64 73 20 68 61 76 | 69 6e 67 20 74 6f 20 63 |oids hav|ing to c|
|00003910| 61 73 74 20 72 65 74 75 | 72 6e 20 76 61 6c 75 65 |ast retu|rn value|
|00003920| 73 20 66 72 6f 6d 20 54 | 4c 69 73 74 20 6d 65 6d |s from T|List mem|
|00003930| 62 65 72 20 66 75 6e 63 | 74 69 6f 6e 73 2e 0d 2f |ber func|tions../|
|00003940| 2f 09 65 2e 67 2e 20 44 | 45 43 4c 41 52 45 4c 49 |/.e.g. D|ECLARELI|
|00003950| 53 54 28 54 5a 6f 6e 65 | 4c 69 73 74 2c 20 54 5a |ST(TZone|List, TZ|
|00003960| 6f 6e 65 29 20 64 65 63 | 6c 61 72 65 73 20 54 5a |one) dec|lares TZ|
|00003970| 6f 6e 65 4c 69 73 74 20 | 74 6f 20 62 65 20 61 20 |oneList |to be a |
|00003980| 6c 69 73 74 20 6f 66 20 | 70 6f 69 6e 74 65 72 73 |list of |pointers|
|00003990| 0d 2f 2f 09 74 6f 20 54 | 5a 6f 6e 65 73 20 28 69 |.//.to T|Zones (i|
|000039a0| 2e 65 2e 20 54 5a 6f 6e | 65 2a d5 73 29 2e 20 20 |.e. TZon|e*.s). |
|000039b0| 55 73 65 20 49 4d 50 4c | 45 4d 45 4e 54 4c 49 53 |Use IMPL|EMENTLIS|
|000039c0| 54 20 69 6e 20 74 68 65 | 20 63 6f 6f 72 65 73 70 |T in the| cooresp|
|000039d0| 6f 6e 64 69 6e 67 20 2e | 63 20 66 69 6c 65 2e 0d |onding .|c file..|
|000039e0| 2f 2f 09 53 65 65 20 61 | 6c 73 6f 20 44 45 43 4c |//.See a|lso DECL|
|000039f0| 41 52 45 4f 42 4a 45 43 | 54 4c 49 53 54 2c 20 44 |AREOBJEC|TLIST, D|
|00003a00| 45 43 4c 41 52 45 4c 4f | 4f 50 2c 20 44 45 43 4c |ECLARELO|OP, DECL|
|00003a10| 41 52 45 53 54 41 43 4b | 20 61 6e 64 20 44 45 43 |ARESTACK| and DEC|
|00003a20| 4c 41 52 45 51 55 45 55 | 45 2e 0d 2f 2f 2d 2d 2d |LAREQUEU|E..//---|
|00003a30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a80| 2d 2d 2d 2d 2d 0d 0d 23 | 64 65 66 69 6e 65 20 44 |-----..#|define D|
|00003a90| 45 43 4c 41 52 45 4c 49 | 53 54 42 41 53 49 43 4f |ECLARELI|STBASICO|
|00003aa0| 50 45 52 41 54 49 4f 4e | 53 28 6c 69 73 74 74 79 |PERATION|S(listty|
|00003ab0| 70 65 2c 20 69 74 65 6d | 74 79 70 65 29 09 09 09 |pe, item|type)...|
|00003ac0| 09 09 09 09 09 09 09 09 | 09 09 09 09 5c 0d 09 70 |........|....\..p|
|00003ad0| 75 62 6c 69 63 3a 09 09 | 09 09 09 09 09 09 09 09 |ublic:..|........|
|00003ae0| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........|
|00003af0| 5c 0d 09 09 73 74 61 74 | 69 63 09 6c 69 73 74 74 |\...stat|ic.listt|
|00003b00| 79 70 65 2a 09 4d 61 6b | 65 28 29 09 09 09 09 09 |ype*.Mak|e().....|
|00003b10| 09 09 09 7b 20 72 65 74 | 75 72 6e 20 28 6c 69 73 |...{ ret|urn (lis|
|00003b20| 74 74 79 70 65 2a 29 20 | 54 4c 69 73 74 3a 3a 4d |ttype*) |TList::M|
|00003b30| 61 6b 65 28 29 3b 20 7d | 09 09 09 5c 0d 09 09 73 |ake(); }|...\...s|
|00003b40| 74 61 74 69 63 09 6c 69 | 73 74 74 79 70 65 2a 09 |tatic.li|sttype*.|
|00003b50| 4d 61 6b 65 28 75 6e 73 | 69 67 6e 65 64 20 73 68 |Make(uns|igned sh|
|00003b60| 6f 72 74 20 67 75 65 73 | 73 43 6f 75 6e 74 29 20 |ort gues|sCount) |
|00003b70| 09 7b 20 72 65 74 75 72 | 6e 20 28 6c 69 73 74 74 |.{ retur|n (listt|
|00003b80| 79 70 65 2a 29 20 54 4c | 69 73 74 3a 3a 4d 61 6b |ype*) TL|ist::Mak|
|00003b90| 65 28 67 75 65 73 73 43 | 6f 75 6e 74 29 3b 20 7d |e(guessC|ount); }|
|00003ba0| 09 5c 0d 09 09 09 09 6c | 69 73 74 74 79 70 65 2a |.\.....l|isttype*|
|00003bb0| 09 43 6c 6f 6e 65 28 42 | 6f 6f 6c 65 61 6e 20 66 |.Clone(B|oolean f|
|00003bc0| 6f 72 63 65 43 72 65 61 | 74 65 20 3d 20 74 72 75 |orceCrea|te = tru|
|00003bd0| 65 29 09 7b 20 72 65 74 | 75 72 6e 20 28 6c 69 73 |e).{ ret|urn (lis|
|00003be0| 74 74 79 70 65 2a 29 20 | 54 4c 69 73 74 3a 3a 43 |ttype*) |TList::C|
|00003bf0| 6c 6f 6e 65 28 66 6f 72 | 63 65 43 72 65 61 74 65 |lone(for|ceCreate|
|00003c00| 29 3b 20 7d 09 5c 0d 09 | 09 09 09 69 74 65 6d 74 |); }.\..|...itemt|
|00003c10| 79 70 65 2a 09 46 69 72 | 73 74 28 29 09 09 09 09 |ype*.Fir|st()....|
|00003c20| 09 09 09 09 7b 20 72 65 | 74 75 72 6e 20 28 69 74 |....{ re|turn (it|
|00003c30| 65 6d 74 79 70 65 2a 29 | 20 54 4c 69 73 74 3a 3a |emtype*)| TList::|
|00003c40| 46 69 72 73 74 28 29 3b | 20 7d 09 09 09 5c 0d 09 |First();| }...\..|
|00003c50| 09 09 09 69 74 65 6d 74 | 79 70 65 2a 09 4c 61 73 |...itemt|ype*.Las|
|00003c60| 74 28 29 09 09 09 09 09 | 09 09 09 7b 20 72 65 74 |t().....|...{ ret|
|00003c70| 75 72 6e 20 28 69 74 65 | 6d 74 79 70 65 2a 29 20 |urn (ite|mtype*) |
|00003c80| 54 4c 69 73 74 3a 3a 4c | 61 73 74 28 29 3b 20 7d |TList::L|ast(); }|
|00003c90| 09 09 09 5c 0d 09 09 09 | 09 69 74 65 6d 74 79 70 |...\....|.itemtyp|
|00003ca0| 65 2a 09 4e 65 78 74 28 | 63 6f 6e 73 74 20 69 74 |e*.Next(|const it|
|00003cb0| 65 6d 74 79 70 65 2a 20 | 69 74 65 6d 29 09 09 09 |emtype* |item)...|
|00003cc0| 7b 20 72 65 74 75 72 6e | 20 28 69 74 65 6d 74 79 |{ return| (itemty|
|00003cd0| 70 65 2a 29 20 54 4c 69 | 73 74 3a 3a 4e 65 78 74 |pe*) TLi|st::Next|
|00003ce0| 28 28 76 6f 69 64 20 2a | 29 69 74 65 6d 29 3b 20 |((void *|)item); |
|00003cf0| 7d 09 09 5c 0d 09 09 09 | 09 69 74 65 6d 74 79 70 |}..\....|.itemtyp|
|00003d00| 65 2a 09 50 72 65 76 69 | 6f 75 73 28 63 6f 6e 73 |e*.Previ|ous(cons|
|00003d10| 74 20 69 74 65 6d 74 79 | 70 65 2a 20 69 74 65 6d |t itemty|pe* item|
|00003d20| 29 09 09 7b 20 72 65 74 | 75 72 6e 20 28 69 74 65 |)..{ ret|urn (ite|
|00003d30| 6d 74 79 70 65 2a 29 20 | 54 4c 69 73 74 3a 3a 50 |mtype*) |TList::P|
|00003d40| 72 65 76 69 6f 75 73 28 | 28 76 6f 69 64 20 2a 29 |revious(|(void *)|
|00003d50| 69 74 65 6d 29 3b 20 7d | 09 5c 0d 09 09 09 09 69 |item); }|.\.....i|
|00003d60| 74 65 6d 74 79 70 65 2a | 09 49 74 68 28 75 6e 73 |temtype*|.Ith(uns|
|00003d70| 69 67 6e 65 64 20 73 68 | 6f 72 74 20 69 6e 64 65 |igned sh|ort inde|
|00003d80| 78 29 09 09 09 7b 20 72 | 65 74 75 72 6e 20 28 69 |x)...{ r|eturn (i|
|00003d90| 74 65 6d 74 79 70 65 2a | 29 20 54 4c 69 73 74 3a |temtype*|) TList:|
|00003da0| 3a 49 74 68 28 69 6e 64 | 65 78 29 3b 20 7d 09 09 |:Ith(ind|ex); }..|
|00003db0| 5c 0d 09 09 09 09 69 74 | 65 6d 74 79 70 65 2a 09 |\.....it|emtype*.|
|00003dc0| 42 79 74 65 49 74 68 28 | 75 6e 73 69 67 6e 65 64 |ByteIth(|unsigned|
|00003dd0| 20 6c 6f 6e 67 20 62 79 | 74 65 49 6e 64 65 78 29 | long by|teIndex)|
|00003de0| 09 7b 20 72 65 74 75 72 | 6e 20 28 69 74 65 6d 74 |.{ retur|n (itemt|
|00003df0| 79 70 65 2a 29 20 54 4c | 69 73 74 3a 3a 42 79 74 |ype*) TL|ist::Byt|
|00003e00| 65 49 74 68 28 62 79 74 | 65 49 6e 64 65 78 29 3b |eIth(byt|eIndex);|
|00003e10| 20 7d 20 5c 0d 09 09 09 | 09 6c 6f 6e 67 09 09 42 | } \....|.long..B|
|00003e20| 79 74 65 49 6e 64 65 78 | 28 63 6f 6e 73 74 20 69 |yteIndex|(const i|
|00003e30| 74 65 6d 74 79 70 65 2a | 20 69 74 65 6d 29 09 09 |temtype*| item)..|
|00003e40| 7b 20 72 65 74 75 72 6e | 20 54 4c 69 73 74 3a 3a |{ return| TList::|
|00003e50| 42 79 74 65 49 6e 64 65 | 78 28 28 76 6f 69 64 20 |ByteInde|x((void |
|00003e60| 2a 29 69 74 65 6d 29 3b | 20 7d 09 09 09 09 09 0d |*)item);| }......|
|00003e70| 0d 23 64 65 66 69 6e 65 | 20 44 45 43 4c 41 52 45 |.#define| DECLARE|
|00003e80| 4c 49 53 54 28 6c 69 73 | 74 74 79 70 65 2c 20 69 |LIST(lis|ttype, i|
|00003e90| 74 65 6d 74 79 70 65 29 | 09 09 09 09 09 5c 0d 09 |temtype)|.....\..|
|00003ea0| 63 6c 61 73 73 20 6c 69 | 73 74 74 79 70 65 20 3a |class li|sttype :|
|00003eb0| 20 70 75 62 6c 69 63 20 | 54 4c 69 73 74 09 09 09 | public |TList...|
|00003ec0| 09 09 09 5c 0d 09 09 7b | 09 09 09 09 09 09 09 09 |...\...{|........|
|00003ed0| 09 09 09 09 5c 0d 09 09 | 44 45 43 4c 41 52 45 4c |....\...|DECLAREL|
|00003ee0| 49 53 54 42 41 53 49 43 | 4f 50 45 52 41 54 49 4f |ISTBASIC|OPERATIO|
|00003ef0| 4e 53 28 6c 69 73 74 74 | 79 70 65 2c 20 69 74 65 |NS(listt|ype, ite|
|00003f00| 6d 74 79 70 65 29 3b 09 | 5c 0d 09 09 7d 3b 0d 0d |mtype);.|\...};..|
|00003f10| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00003f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 09 54 68 |--------|--.//.Th|
|00003f70| 65 20 49 4d 50 4c 45 4d | 45 4e 54 4c 49 53 54 20 |e IMPLEM|ENTLIST |
|00003f80| 6d 61 63 72 6f 20 63 61 | 6e 20 62 65 20 75 73 65 |macro ca|n be use|
|00003f90| 64 20 69 6e 20 61 20 2e | 63 20 66 69 6c 65 20 74 |d in a .|c file t|
|00003fa0| 6f 20 69 6d 70 6c 65 6d | 65 6e 74 20 61 20 6e 65 |o implem|ent a ne|
|00003fb0| 77 20 6c 69 73 74 20 74 | 79 70 65 2e 0d 2f 2f 09 |w list t|ype..//.|
|00003fc0| 65 2e 67 2e 20 49 4d 50 | 4c 45 4d 45 4e 54 4c 49 |e.g. IMP|LEMENTLI|
|00003fd0| 53 54 28 54 5a 6f 6e 65 | 4c 69 73 74 2c 20 54 5a |ST(TZone|List, TZ|
|00003fe0| 6f 6e 65 29 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |one).//-|--------|
|00003ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00004040| 0d 23 64 65 66 69 6e 65 | 20 49 4d 50 4c 45 4d 45 |.#define| IMPLEME|
|00004050| 4e 54 4c 49 53 54 28 6c | 69 73 74 74 79 70 65 2c |NTLIST(l|isttype,|
|00004060| 20 69 74 65 6d 74 79 70 | 65 29 0d 0d 0d 2f 2f 3d | itemtyp|e)...//=|
|00004070| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004080| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040c0| 3d 3d 3d 3d 3d 3d 3d 0d | 2f 2f 20 43 4c 41 53 53 |=======.|// CLASS|
|000040d0| 20 54 44 65 6c 65 74 65 | 4e 6f 74 69 66 69 63 61 | TDelete|Notifica|
|000040e0| 74 69 6f 6e 52 65 67 69 | 73 74 72 65 65 4c 69 73 |tionRegi|streeLis|
|000040f0| 74 0d 2f 2f 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |t.//====|========|
|00004100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004120| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004140| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 0d 0d 44 45 |========|====..DE|
|00004150| 43 4c 41 52 45 4c 49 53 | 54 28 54 44 65 6c 65 74 |CLARELIS|T(TDelet|
|00004160| 65 4e 6f 74 69 66 69 63 | 61 74 69 6f 6e 52 65 67 |eNotific|ationReg|
|00004170| 69 73 74 72 65 65 4c 69 | 73 74 2c 20 54 43 61 6e |istreeLi|st, TCan|
|00004180| 52 65 63 65 69 76 65 44 | 65 6c 65 74 65 4e 6f 74 |ReceiveD|eleteNot|
|00004190| 69 66 69 63 61 74 69 6f | 6e 29 3b 0d 0d 0d 74 79 |ificatio|n);...ty|
|000041a0| 70 65 64 65 66 20 73 68 | 6f 72 74 20 28 2a 53 63 |pedef sh|ort (*Sc|
|000041b0| 72 65 77 79 46 6e 50 74 | 72 29 28 76 6f 69 64 2a |rewyFnPt|r)(void*|
|000041c0| 29 3b 0d 0d 2f 2f 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |);..//==|========|
|000041d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000041e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000041f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004200| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004210| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 2f |========|======./|
|00004220| 2f 20 43 4c 41 53 53 20 | 54 4f 62 6a 65 63 74 4c |/ CLASS |TObjectL|
|00004230| 69 73 74 0d 2f 2f 0d 2f | 2f 20 4c 69 73 74 20 6f |ist.//./|/ List o|
|00004240| 66 20 54 4f 62 6a 65 63 | 74 2a d5 73 0d 2f 2f 3d |f TObjec|t*.s.//=|
|00004250| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004260| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004270| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004280| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004290| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000042a0| 3d 3d 3d 3d 3d 3d 3d 0d | 0d 63 6c 61 73 73 20 54 |=======.|.class T|
|000042b0| 4f 62 6a 65 63 74 4c 69 | 73 74 20 3a 20 70 75 62 |ObjectLi|st : pub|
|000042c0| 6c 69 63 20 54 4c 69 73 | 74 0d 09 7b 0d 09 44 45 |lic TLis|t..{..DE|
|000042d0| 43 4c 41 52 45 4c 49 53 | 54 42 41 53 49 43 4f 50 |CLARELIS|TBASICOP|
|000042e0| 45 52 41 54 49 4f 4e 53 | 28 54 4f 62 6a 65 63 74 |ERATIONS|(TObject|
|000042f0| 4c 69 73 74 2c 20 54 4f | 62 6a 65 63 74 29 0d 0d |List, TO|bject)..|
|00004300| 09 6c 6f 6e 67 09 09 42 | 79 74 65 49 6e 64 65 78 |.long..B|yteIndex|
|00004310| 28 6c 6f 6e 67 29 3b 09 | 09 09 09 09 09 2f 2f 20 |(long);.|.....// |
|00004320| 66 69 6e 64 20 74 68 65 | 20 66 69 72 73 74 20 69 |find the| first i|
|00004330| 6e 64 65 78 20 6f 66 20 | 61 6e 20 69 74 65 6d 20 |ndex of |an item |
|00004340| 77 69 74 68 20 61 20 67 | 69 76 65 6e 20 6b 65 79 |with a g|iven key|
|00004350| 20 28 6f 72 20 6b 42 79 | 74 65 49 74 65 6d 4e 6f | (or kBy|teItemNo|
|00004360| 74 46 6f 75 6e 64 20 69 | 66 20 6e 6f 74 20 66 6f |tFound i|f not fo|
|00004370| 75 6e 64 29 0d 09 54 4f | 62 6a 65 63 74 2a 09 4c |und)..TO|bject*.L|
|00004380| 6f 6f 6b 75 70 28 6c 6f | 6e 67 29 3b 09 09 09 09 |ookup(lo|ng);....|
|00004390| 09 09 09 2f 2f 09 72 65 | 74 75 72 6e 20 74 68 65 |...//.re|turn the|
|000043a0| 20 66 69 72 73 74 20 69 | 74 65 6d 20 77 69 74 68 | first i|tem with|
|000043b0| 20 61 20 67 69 76 65 6e | 20 6b 65 79 20 28 6f 72 | a given| key (or|
|000043c0| 20 6e 69 6c 20 69 66 20 | 6e 6f 74 20 66 6f 75 6e | nil if |not foun|
|000043d0| 64 29 0d 09 42 6f 6f 6c | 65 61 6e 09 09 41 64 64 |d)..Bool|ean..Add|
|000043e0| 55 6e 69 71 75 65 42 79 | 4b 65 79 28 54 4f 62 6a |UniqueBy|Key(TObj|
|000043f0| 65 63 74 2a 29 3b 09 09 | 09 09 2f 2f a5 ca 61 64 |ect*);..|..//..ad|
|00004400| 64 20 61 6e 20 69 74 65 | 6d 20 69 66 20 69 74 73 |d an ite|m if its|
|00004410| 20 6b 65 79 20 69 73 20 | 75 6e 69 71 75 65 20 69 | key is |unique i|
|00004420| 6e 20 74 68 65 20 6c 69 | 73 74 3b 20 72 65 74 75 |n the li|st; retu|
|00004430| 72 6e 73 20 74 72 75 65 | 20 69 66 66 20 74 68 65 |rns true| iff the|
|00004440| 20 69 74 65 6d 20 77 61 | 73 20 61 64 64 65 64 0d | item wa|s added.|
|00004450| 09 76 6f 69 64 09 09 46 | 6f 72 45 61 63 68 44 6f |.void..F|orEachDo|
|00004460| 28 76 6f 69 64 20 28 54 | 4f 62 6a 65 63 74 3a 3a |(void (T|Object::|
|00004470| 2a 66 75 6e 63 29 28 29 | 29 3b 0d 09 54 4f 62 6a |*func)()|);..TObj|
|00004480| 65 63 74 2a 09 46 69 6e | 64 46 69 72 73 74 53 75 |ect*.Fin|dFirstSu|
|00004490| 63 68 54 68 61 74 28 42 | 6f 6f 6c 65 61 6e 20 28 |chThat(B|oolean (|
|000044a0| 54 4f 62 6a 65 63 74 3a | 3a 2a 66 75 6e 63 29 28 |TObject:|:*func)(|
|000044b0| 63 6f 6e 73 74 20 76 6f | 69 64 2a 29 2c 20 63 6f |const vo|id*), co|
|000044c0| 6e 73 74 20 76 6f 69 64 | 2a 29 3b 0d 09 73 68 6f |nst void|*);..sho|
|000044d0| 72 74 09 09 42 69 6e 61 | 72 79 53 65 61 72 63 68 |rt..Bina|rySearch|
|000044e0| 28 73 68 6f 72 74 20 28 | 54 4f 62 6a 65 63 74 3a |(short (|TObject:|
|000044f0| 3a 2a 66 75 6e 63 29 28 | 63 6f 6e 73 74 20 76 6f |:*func)(|const vo|
|00004500| 69 64 2a 29 2c 20 63 6f | 6e 73 74 20 76 6f 69 64 |id*), co|nst void|
|00004510| 2a 29 3b 0d 09 09 0d 09 | 54 4f 62 6a 65 63 74 2a |*);.....|TObject*|
|00004520| 09 52 65 70 6c 61 63 65 | 42 79 4b 65 79 28 6c 6f |.Replace|ByKey(lo|
|00004530| 6e 67 2c 20 54 4f 62 6a | 65 63 74 2a 20 6e 65 77 |ng, TObj|ect* new|
|00004540| 49 74 65 6d 29 3b 09 2f | 2f 20 72 65 70 6c 61 63 |Item);./|/ replac|
|00004550| 65 20 74 68 65 20 66 69 | 72 73 74 20 69 74 65 6d |e the fi|rst item|
|00004560| 20 74 68 61 74 20 68 61 | 73 20 61 20 67 69 76 65 | that ha|s a give|
|00004570| 6e 20 6b 65 79 20 77 69 | 74 68 20 6e 65 77 49 74 |n key wi|th newIt|
|00004580| 65 6d 3b 20 72 65 74 75 | 72 6e 73 20 74 68 65 20 |em; retu|rns the |
|00004590| 69 74 65 6d 20 72 65 70 | 6c 61 63 65 64 20 6f 72 |item rep|laced or|
|000045a0| 20 6e 69 6c 0d 09 09 0d | 09 76 6f 69 64 09 09 44 | nil....|.void..D|
|000045b0| 65 6c 65 74 65 41 6c 6c | 4e 6f 54 72 69 6d 28 29 |eleteAll|NoTrim()|
|000045c0| 3b 09 09 09 09 09 09 2f | 2f 09 6f 70 65 72 61 74 |;....../|/.operat|
|000045d0| 6f 72 20 64 65 6c 65 74 | 65 20 26 20 72 65 6d 6f |or delet|e & remo|
|000045e0| 76 65 20 61 6c 6c 20 6f | 66 20 74 68 65 20 69 74 |ve all o|f the it|
|000045f0| 65 6d 73 20 69 6e 20 74 | 68 65 20 6c 69 73 74 20 |ems in t|he list |
|00004600| 28 64 6f 65 73 20 6e 6f | 74 20 54 72 69 6d 28 29 |(does no|t Trim()|
|00004610| 29 0d 09 76 6f 69 64 09 | 09 44 65 6c 65 74 65 41 |)..void.|.DeleteA|
|00004620| 6c 6c 28 29 3b 09 09 09 | 09 09 09 09 2f 2f 20 6f |ll();...|....// o|
|00004630| 70 65 72 61 74 6f 72 20 | 64 65 6c 65 74 65 20 26 |perator |delete &|
|00004640| 20 72 65 6d 6f 76 65 20 | 61 6c 6c 20 6f 66 20 74 | remove |all of t|
|00004650| 68 65 20 69 74 65 6d 73 | 20 69 6e 20 74 68 65 20 |he items| in the |
|00004660| 6c 69 73 74 20 28 64 6f | 65 73 20 54 72 69 6d 28 |list (do|es Trim(|
|00004670| 29 29 0d 09 09 0d 09 76 | 6f 69 64 20 09 09 53 6f |)).....v|oid ..So|
|00004680| 72 74 28 76 6f 69 64 2a | 29 3b 09 09 09 09 09 09 |rt(void*|);......|
|00004690| 09 2f 2f a5 ca 73 74 61 | 62 6c 65 20 73 6f 72 74 |.//..sta|ble sort|
|000046a0| 20 75 73 69 6e 67 20 70 | 74 72 20 74 6f 20 73 70 | using p|tr to sp|
|000046b0| 65 63 69 66 79 20 73 6f | 72 74 20 6b 65 79 0d 09 |ecify so|rt key..|
|000046c0| 7d 3b 0d 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |};..//--|--------|
|000046d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000046e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000046f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./|
|00004720| 2f 09 54 68 65 20 44 45 | 43 4c 41 52 45 4f 42 4a |/.The DE|CLAREOBJ|
|00004730| 45 43 54 4c 49 53 54 20 | 6d 61 63 72 6f 20 63 61 |ECTLIST |macro ca|
|00004740| 6e 20 62 65 20 75 73 65 | 64 20 69 6e 20 61 20 68 |n be use|d in a h|
|00004750| 65 61 64 65 72 20 66 69 | 6c 65 20 74 6f 20 64 65 |eader fi|le to de|
|00004760| 63 6c 61 72 65 20 61 20 | 6e 65 77 20 6c 69 73 74 |clare a |new list|
|00004770| 20 74 79 70 65 2e 0d 2f | 2f 09 55 73 69 6e 67 20 | type../|/.Using |
|00004780| 69 74 20 61 76 6f 69 64 | 73 20 68 61 76 69 6e 67 |it avoid|s having|
|00004790| 20 74 6f 20 63 61 73 74 | 20 72 65 74 75 72 6e 20 | to cast| return |
|000047a0| 76 61 6c 75 65 73 20 66 | 72 6f 6d 20 54 4f 62 6a |values f|rom TObj|
|000047b0| 65 63 74 4c 69 73 74 20 | 6d 65 6d 62 65 72 20 66 |ectList |member f|
|000047c0| 75 6e 63 74 69 6f 6e 73 | 2e 0d 2f 2f 09 65 2e 67 |unctions|..//.e.g|
|000047d0| 2e 20 44 45 43 4c 41 52 | 45 4f 42 4a 45 43 54 4c |. DECLAR|EOBJECTL|
|000047e0| 49 53 54 28 54 49 63 6f | 6e 4c 69 73 74 2c 20 54 |IST(TIco|nList, T|
|000047f0| 49 63 6f 6e 29 20 64 65 | 63 6c 61 72 65 73 20 54 |Icon) de|clares T|
|00004800| 49 63 6f 6e 4c 69 73 74 | 20 74 6f 20 62 65 20 61 |IconList| to be a|
|00004810| 20 6c 69 73 74 20 6f 66 | 20 70 6f 69 6e 74 65 72 | list of| pointer|
|00004820| 73 0d 2f 2f 09 74 6f 20 | 54 49 63 6f 6e 73 20 28 |s.//.to |TIcons (|
|00004830| 69 2e 65 2e 20 54 49 63 | 6f 6e 2a d5 73 29 2e 20 |i.e. TIc|on*.s). |
|00004840| 20 55 73 65 20 49 4d 50 | 4c 45 4d 45 4e 54 4f 42 | Use IMP|LEMENTOB|
|00004850| 4a 45 43 54 4c 49 53 54 | 20 69 6e 20 74 68 65 20 |JECTLIST| in the |
|00004860| 63 6f 6f 72 65 73 70 6f | 6e 64 69 6e 67 20 2e 63 |coorespo|nding .c|
|00004870| 20 66 69 6c 65 2e 0d 2f | 2f 09 53 65 65 20 61 6c | file../|/.See al|
|00004880| 73 6f 20 44 45 43 4c 41 | 52 45 4c 49 53 54 2c 20 |so DECLA|RELIST, |
|00004890| 44 45 43 4c 41 52 45 4c | 4f 4f 50 2c 20 44 45 43 |DECLAREL|OOP, DEC|
|000048a0| 4c 41 52 45 53 54 41 43 | 4b 20 61 6e 64 20 44 45 |LARESTAC|K and DE|
|000048b0| 43 4c 41 52 45 51 55 45 | 55 45 2e 0d 2f 2f 2d 2d |CLAREQUE|UE..//--|
|000048c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000048d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000048e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000048f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004910| 2d 2d 2d 2d 2d 2d 0d 0d | 23 64 65 66 69 6e 65 20 |------..|#define |
|00004920| 44 45 43 4c 41 52 45 4f | 42 4a 45 43 54 4c 49 53 |DECLAREO|BJECTLIS|
|00004930| 54 28 6c 69 73 74 74 79 | 70 65 2c 20 69 74 65 6d |T(listty|pe, item|
|00004940| 74 79 70 65 29 09 09 09 | 09 09 5c 0d 09 63 6c 61 |type)...|..\..cla|
|00004950| 73 73 20 6c 69 73 74 74 | 79 70 65 20 3a 20 70 75 |ss listt|ype : pu|
|00004960| 62 6c 69 63 20 54 4f 62 | 6a 65 63 74 4c 69 73 74 |blic TOb|jectList|
|00004970| 09 09 09 09 09 09 09 5c | 0d 09 09 7b 09 09 09 09 |.......\|...{....|
|00004980| 09 09 09 09 09 09 09 09 | 09 09 5c 0d 09 09 44 45 |........|..\...DE|
|00004990| 43 4c 41 52 45 4c 49 53 | 54 42 41 53 49 43 4f 50 |CLARELIS|TBASICOP|
|000049a0| 45 52 41 54 49 4f 4e 53 | 28 6c 69 73 74 74 79 70 |ERATIONS|(listtyp|
|000049b0| 65 2c 20 69 74 65 6d 74 | 79 70 65 29 09 09 09 5c |e, itemt|ype)...\|
|000049c0| 0d 09 09 69 74 65 6d 74 | 79 70 65 2a 09 4c 6f 6f |...itemt|ype*.Loo|
|000049d0| 6b 75 70 28 6c 6f 6e 67 | 20 6b 65 79 29 09 09 09 |kup(long| key)...|
|000049e0| 09 09 09 09 7b 20 72 65 | 74 75 72 6e 20 28 69 74 |....{ re|turn (it|
|000049f0| 65 6d 74 79 70 65 2a 29 | 20 54 4f 62 6a 65 63 74 |emtype*)| TObject|
|00004a00| 4c 69 73 74 3a 3a 4c 6f | 6f 6b 75 70 28 6b 65 79 |List::Lo|okup(key|
|00004a10| 29 3b 20 7d 09 09 5c 0d | 09 09 76 6f 69 64 09 09 |); }..\.|..void..|
|00004a20| 46 6f 72 45 61 63 68 44 | 6f 28 76 6f 69 64 20 28 |ForEachD|o(void (|
|00004a30| 69 74 65 6d 74 79 70 65 | 3a 3a 2a 66 75 6e 63 29 |itemtype|::*func)|
|00004a40| 28 29 29 09 09 09 7b 20 | 54 4f 62 6a 65 63 74 4c |())...{ |TObjectL|
|00004a50| 69 73 74 3a 3a 46 6f 72 | 45 61 63 68 44 6f 28 28 |ist::For|EachDo((|
|00004a60| 76 6f 69 64 20 28 54 4f | 62 6a 65 63 74 3a 3a 2a |void (TO|bject::*|
|00004a70| 29 28 29 29 66 75 6e 63 | 29 3b 20 7d 09 5c 0d 09 |)())func|); }.\..|
|00004a80| 09 73 68 6f 72 74 09 09 | 42 69 6e 61 72 79 53 65 |.short..|BinarySe|
|00004a90| 61 72 63 68 28 73 68 6f | 72 74 20 28 69 74 65 6d |arch(sho|rt (item|
|00004aa0| 74 79 70 65 3a 3a 2a 66 | 75 6e 63 29 28 63 6f 6e |type::*f|unc)(con|
|00004ab0| 73 74 20 76 6f 69 64 2a | 29 2c 20 63 6f 6e 73 74 |st void*|), const|
|00004ac0| 20 76 6f 69 64 2a 20 72 | 65 66 43 6f 6e 29 09 5c | void* r|efCon).\|
|00004ad0| 0d 09 09 09 09 09 09 09 | 09 7b 20 72 65 74 75 72 |........|.{ retur|
|00004ae0| 6e 20 54 4f 62 6a 65 63 | 74 4c 69 73 74 3a 3a 42 |n TObjec|tList::B|
|00004af0| 69 6e 61 72 79 53 65 61 | 72 63 68 28 28 73 68 6f |inarySea|rch((sho|
|00004b00| 72 74 20 28 54 4f 62 6a | 65 63 74 3a 3a 2a 29 28 |rt (TObj|ect::*)(|
|00004b10| 63 6f 6e 73 74 20 76 6f | 69 64 2a 29 29 66 75 6e |const vo|id*))fun|
|00004b20| 63 2c 20 72 65 66 43 6f | 6e 29 3b 20 7d 09 5c 0d |c, refCo|n); }.\.|
|00004b30| 09 09 7d 3b 09 09 09 09 | 09 09 09 09 09 09 09 09 |..};....|........|
|00004b40| 09 09 0d 0d 0d 2f 2f 09 | 09 69 74 65 6d 74 79 70 |.....//.|.itemtyp|
|00004b50| 65 2a 09 46 69 6e 64 46 | 69 72 73 74 53 75 63 68 |e*.FindF|irstSuch|
|00004b60| 54 68 61 74 28 42 6f 6f | 6c 65 61 6e 20 28 69 74 |That(Boo|lean (it|
|00004b70| 65 6d 74 79 70 65 3a 3a | 2a 66 75 6e 63 29 28 63 |emtype::|*func)(c|
|00004b80| 6f 6e 73 74 20 76 6f 69 | 64 2a 29 2c 20 63 6f 6e |onst voi|d*), con|
|00004b90| 73 74 20 76 6f 69 64 2a | 20 72 65 66 43 6f 6e 29 |st void*| refCon)|
|00004ba0| 09 5c 0d 2f 2f 09 09 09 | 09 09 09 09 09 7b 20 72 |.\.//...|.....{ r|
|00004bb0| 65 74 75 72 6e 20 28 69 | 74 65 6d 74 79 70 65 2a |eturn (i|temtype*|
|00004bc0| 29 20 54 4f 62 6a 65 63 | 74 4c 69 73 74 3a 3a 46 |) TObjec|tList::F|
|00004bd0| 69 6e 64 46 69 72 73 74 | 53 75 63 68 54 68 61 74 |indFirst|SuchThat|
|00004be0| 28 28 42 6f 6f 6c 65 61 | 6e 20 28 54 4f 62 6a 65 |((Boolea|n (TObje|
|00004bf0| 63 74 3a 3a 2a 29 28 63 | 6f 6e 73 74 20 76 6f 69 |ct::*)(c|onst voi|
|00004c00| 64 2a 29 29 66 75 6e 63 | 2c 20 72 65 66 43 6f 6e |d*))func|, refCon|
|00004c10| 29 3b 20 7d 09 5c 0d 0d | 0d 2f 2f 2d 2d 2d 2d 2d |); }.\..|.//-----|
|00004c20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004c70| 2d 2d 2d 0d 2f 2f 09 54 | 68 65 20 49 4d 50 4c 45 |---.//.T|he IMPLE|
|00004c80| 4d 45 4e 54 4f 42 4a 45 | 43 54 4c 49 53 54 20 6d |MENTOBJE|CTLIST m|
|00004c90| 61 63 72 6f 20 63 61 6e | 20 62 65 20 75 73 65 64 |acro can| be used|
|00004ca0| 20 69 6e 20 61 20 2e 63 | 20 66 69 6c 65 20 74 6f | in a .c| file to|
|00004cb0| 20 69 6d 70 6c 65 6d 65 | 6e 74 20 61 20 6e 65 77 | impleme|nt a new|
|00004cc0| 20 6c 69 73 74 20 74 79 | 70 65 2e 0d 2f 2f 09 65 | list ty|pe..//.e|
|00004cd0| 2e 67 2e 20 49 4d 50 4c | 45 4d 45 4e 54 4f 42 4a |.g. IMPL|EMENTOBJ|
|00004ce0| 45 43 54 4c 49 53 54 28 | 54 49 63 6f 6e 4c 69 73 |ECTLIST(|TIconLis|
|00004cf0| 74 2c 20 54 49 63 6f 6e | 29 0d 2f 2f 2d 2d 2d 2d |t, TIcon|).//----|
|00004d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d50| 2d 2d 2d 2d 0d 0d 23 64 | 65 66 69 6e 65 20 49 4d |----..#d|efine IM|
|00004d60| 50 4c 45 4d 45 4e 54 4f | 42 4a 45 43 54 4c 49 53 |PLEMENTO|BJECTLIS|
|00004d70| 54 28 6c 69 73 74 74 79 | 70 65 2c 20 69 74 65 6d |T(listty|pe, item|
|00004d80| 74 79 70 65 29 0d 0d 0d | 2f 2f 3d 3d 3d 3d 3d 3d |type)...|//======|
|00004d90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004da0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004db0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004dc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004dd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004de0| 3d 3d 0d 2f 2f 20 43 4c | 41 53 53 20 4c 6f 6f 70 |==.// CL|ASS Loop|
|00004df0| 0d 2f 2f 0d 2f 2f 20 20 | 49 74 65 72 61 74 65 20 |.//.// |Iterate |
|00004e00| 61 20 54 4c 69 73 74 0d | 2f 2f 0d 2f 2f 09 54 4c |a TList.|//.//.TL|
|00004e10| 69 73 74 3a 3a 41 64 64 | 2c 20 54 4c 69 73 74 3a |ist::Add|, TList:|
|00004e20| 3a 41 70 70 65 6e 64 2c | 20 54 4c 69 73 74 3a 3a |:Append,| TList::|
|00004e30| 49 6e 73 65 72 74 2c 20 | 54 4c 69 73 74 3a 3a 52 |Insert, |TList::R|
|00004e40| 65 6d 6f 76 65 20 61 6e | 64 20 54 4c 69 73 74 3a |emove an|d TList:|
|00004e50| 3a 52 65 6d 6f 76 65 41 | 6c 6c 0d 2f 2f 09 63 61 |:RemoveA|ll.//.ca|
|00004e60| 6e d5 74 20 62 65 20 63 | 61 6c 6c 65 64 20 77 68 |n.t be c|alled wh|
|00004e70| 69 6c 65 20 74 68 65 20 | 6c 69 73 74 20 68 61 73 |ile the |list has|
|00004e80| 20 61 20 54 4c 6f 6f 70 | 20 69 6e 20 73 63 6f 70 | a TLoop| in scop|
|00004e90| 65 20 62 75 74 20 54 4c | 6f 6f 70 3a 3a 52 65 6d |e but TL|oop::Rem|
|00004ea0| 6f 76 65 43 75 72 72 65 | 6e 74 28 29 20 63 61 6e |oveCurre|nt() can|
|00004eb0| 0d 2f 2f 09 62 65 20 63 | 61 6c 6c 65 64 20 69 66 |.//.be c|alled if|
|00004ec0| 20 74 68 65 72 65 20 69 | 73 20 6f 6e 6c 79 20 6f | there i|s only o|
|00004ed0| 6e 65 20 54 4c 6f 6f 70 | 20 66 6f 72 20 74 68 65 |ne TLoop| for the|
|00004ee0| 20 6c 69 73 74 20 69 6e | 20 73 63 6f 70 65 2e 0d | list in| scope..|
|00004ef0| 2f 2f 0d 2f 2f 09 49 66 | 20 54 4c 6f 6f 70 20 68 |//.//.If| TLoop h|
|00004f00| 61 64 20 61 20 70 72 69 | 6d 61 72 79 20 62 61 73 |ad a pri|mary bas|
|00004f10| 65 20 63 6c 61 73 73 2c | 20 74 68 65 6e 20 69 74 |e class,| then it|
|00004f20| 20 73 68 6f 75 6c 64 20 | 6d 69 78 20 69 6e 20 28 | should |mix in (|
|00004f30| 6d 75 69 6c 74 69 70 6c | 79 2d 69 6e 68 65 72 69 |muiltipl|y-inheri|
|00004f40| 74 20 66 72 6f 6d 29 0d | 2f 2f 09 54 45 78 63 65 |t from).|//.TExce|
|00004f50| 70 74 69 6f 6e 41 63 74 | 69 6f 6e 3b 20 68 6f 77 |ptionAct|ion; how|
|00004f60| 65 76 65 72 2c 20 73 69 | 6e 63 65 20 54 4c 6f 6f |ever, si|nce TLoo|
|00004f70| 70 20 70 72 65 76 69 6f | 75 73 6c 79 20 68 61 64 |p previo|usly had|
|00004f80| 20 6e 6f 20 62 61 73 65 | 20 63 6c 61 73 73 2c 20 | no base| class, |
|00004f90| 69 74 20 64 65 72 69 76 | 65 73 0d 2f 2f 09 64 69 |it deriv|es.//.di|
|00004fa0| 72 65 63 74 6c 79 20 66 | 72 6f 6d 20 54 45 78 63 |rectly f|rom TExc|
|00004fb0| 65 70 74 69 6f 6e 41 63 | 74 69 6f 6e 2e 0d 2f 2f |eptionAc|tion..//|
|00004fc0| 0d 2f 2f 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.//=====|========|
|00004fd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004fe0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004ff0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005000| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0d 63 6c 61 |========|===..cla|
|00005020| 73 73 20 54 4c 6f 6f 70 | 20 3a 20 70 75 62 6c 69 |ss TLoop| : publi|
|00005030| 63 20 54 45 78 63 65 70 | 74 69 6f 6e 41 63 74 69 |c TExcep|tionActi|
|00005040| 6f 6e 0d 09 7b 0d 0d 09 | 2f 2f 0d 09 2f 2f 20 2d |on..{...|//..// -|
|00005050| 2d 2d 20 4d 65 74 68 6f | 64 73 20 2d 2d 2d 2d 2d |-- Metho|ds -----|
|00005060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000050a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000050b0| 0d 09 2f 2f 0d 70 75 62 | 6c 69 63 3a 0d 09 09 09 |..//.pub|lic:....|
|000050c0| 09 54 4c 6f 6f 70 28 54 | 4c 69 73 74 2a 20 6c 69 |.TLoop(T|List* li|
|000050d0| 73 74 29 3b 0d 09 09 09 | 09 7e 54 4c 6f 6f 70 28 |st);....|.~TLoop(|
|000050e0| 29 3b 0d 0d 23 69 66 20 | 30 0d 09 76 6f 69 64 2a |);..#if |0..void*|
|000050f0| 20 09 09 6f 70 65 72 61 | 74 6f 72 20 6e 65 77 28 | ..opera|tor new(|
|00005100| 53 49 5a 45 5f 54 20 2f | 2a 20 73 69 7a 65 20 2a |SIZE_T /|* size *|
|00005110| 2f 29 3b 2f 2f 20 54 68 | 65 73 65 20 67 69 76 65 |/);// Th|ese give|
|00005120| 20 77 61 72 6e 69 6e 67 | 73 20 74 68 61 74 20 6f | warning|s that o|
|00005130| 70 65 72 61 74 6f 72 20 | 6e 65 77 20 61 6e 64 20 |perator |new and |
|00005140| 6f 70 65 72 61 74 6f 72 | 20 64 65 6c 65 74 65 20 |operator| delete |
|00005150| 61 72 65 0d 09 76 6f 69 | 64 20 09 09 6f 70 65 72 |are..voi|d ..oper|
|00005160| 61 74 6f 72 20 64 65 6c | 65 74 65 28 76 6f 69 64 |ator del|ete(void|
|00005170| 2a 20 6f 62 6a 65 63 74 | 29 3b 09 2f 2f 20 62 61 |* object|);.// ba|
|00005180| 64 20 74 68 69 6e 67 73 | 20 74 6f 20 64 6f 20 74 |d things| to do t|
|00005190| 6f 20 54 4c 6f 6f 70 73 | 0d 23 65 6e 64 69 66 0d |o TLoops|.#endif.|
|000051a0| 09 0d 09 76 6f 69 64 09 | 09 52 65 73 65 74 28 29 |...void.|.Reset()|
|000051b0| 3b 0d 09 76 6f 69 64 2a | 09 09 4e 65 78 74 28 29 |;..void*|..Next()|
|000051c0| 3b 09 09 09 09 09 09 09 | 2f 2f 20 4d 6f 76 65 73 |;.......|// Moves|
|000051d0| 20 70 6f 69 6e 74 65 72 | 20 74 6f 20 6e 65 78 74 | pointer| to next|
|000051e0| 20 69 74 65 6d 20 61 6e | 64 20 72 65 74 75 72 6e | item an|d return|
|000051f0| 73 20 69 74 20 28 6f 72 | 20 6e 69 6c 20 69 66 20 |s it (or| nil if |
|00005200| 61 74 20 65 6e 64 20 6f | 66 20 6c 69 73 74 29 0d |at end o|f list).|
|00005210| 09 76 6f 69 64 2a 09 09 | 50 72 65 76 69 6f 75 73 |.void*..|Previous|
|00005220| 28 29 3b 09 09 09 09 09 | 09 2f 2f 20 4d 6f 76 65 |();.....|.// Move|
|00005230| 73 20 70 6f 69 6e 74 65 | 72 20 74 6f 20 70 72 65 |s pointe|r to pre|
|00005240| 76 69 6f 75 73 20 69 74 | 65 6d 20 61 6e 64 20 72 |vious it|em and r|
|00005250| 65 74 75 72 6e 73 20 69 | 74 20 28 6f 72 20 6e 69 |eturns i|t (or ni|
|00005260| 6c 20 69 66 20 61 74 20 | 73 74 61 72 74 20 6f 66 |l if at |start of|
|00005270| 20 6c 69 73 74 29 0d 09 | 42 6f 6f 6c 65 61 6e 09 | list)..|Boolean.|
|00005280| 09 4d 6f 76 65 50 6f 69 | 6e 74 65 72 46 6f 72 77 |.MovePoi|nterForw|
|00005290| 61 72 64 28 29 3b 09 09 | 09 2f 2f 20 4d 6f 76 65 |ard();..|.// Move|
|000052a0| 73 20 70 6f 69 6e 74 65 | 72 20 74 6f 20 6e 65 78 |s pointe|r to nex|
|000052b0| 74 20 69 74 65 6d 2c 20 | 72 65 74 75 72 6e 69 6e |t item, |returnin|
|000052c0| 67 20 66 61 6c 73 65 20 | 69 66 20 61 74 20 74 68 |g false |if at th|
|000052d0| 65 20 65 6e 64 20 6f 66 | 20 6c 69 73 74 0d 09 42 |e end of| list..B|
|000052e0| 6f 6f 6c 65 61 6e 09 09 | 4d 6f 76 65 50 6f 69 6e |oolean..|MovePoin|
|000052f0| 74 65 72 42 61 63 6b 77 | 61 72 64 28 29 3b 09 09 |terBackw|ard();..|
|00005300| 09 2f 2f 20 4d 6f 76 65 | 73 20 70 6f 69 6e 74 65 |.// Move|s pointe|
|00005310| 72 20 74 6f 20 70 72 65 | 76 69 6f 75 73 20 69 74 |r to pre|vious it|
|00005320| 65 6d 2c 20 72 65 74 75 | 72 6e 69 6e 67 20 66 61 |em, retu|rning fa|
|00005330| 6c 73 65 20 69 66 20 61 | 74 20 74 68 65 20 73 74 |lse if a|t the st|
|00005340| 61 72 74 20 6f 66 20 6c | 69 73 74 0d 09 42 6f 6f |art of l|ist..Boo|
|00005350| 6c 65 61 6e 09 09 53 65 | 74 50 6f 69 6e 74 65 72 |lean..Se|tPointer|
|00005360| 54 6f 46 69 72 73 74 28 | 29 3b 09 09 09 2f 2f 20 |ToFirst(|);...// |
|00005370| 53 65 74 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 |Set the |current |
|00005380| 70 6f 69 6e 74 65 72 20 | 74 6f 20 74 68 65 20 66 |pointer |to the f|
|00005390| 69 72 73 74 0d 09 42 6f | 6f 6c 65 61 6e 09 09 53 |irst..Bo|olean..S|
|000053a0| 65 74 50 6f 69 6e 74 65 | 72 54 6f 4c 61 73 74 28 |etPointe|rToLast(|
|000053b0| 29 3b 09 09 09 09 2f 2f | 20 2e 2e 2e 6f 72 20 6c |);....//| ...or l|
|000053c0| 61 73 74 20 69 74 65 6d | 20 69 6e 20 74 68 65 20 |ast item| in the |
|000053d0| 6c 69 73 74 20 28 72 65 | 74 75 72 6e 73 20 66 61 |list (re|turns fa|
|000053e0| 6c 73 65 20 69 66 20 6c | 69 73 74 20 69 73 20 65 |lse if l|ist is e|
|000053f0| 6d 70 74 79 29 0d 09 76 | 6f 69 64 09 09 52 65 73 |mpty)..v|oid..Res|
|00005400| 65 74 54 6f 45 6e 64 28 | 29 3b 09 09 09 09 09 2f |etToEnd(|);...../|
|00005410| 2f 20 52 65 73 65 74 73 | 20 66 6f 72 20 61 20 62 |/ Resets| for a b|
|00005420| 61 63 6b 77 61 72 64 73 | 20 6c 6f 6f 70 0d 09 76 |ackwards| loop..v|
|00005430| 6f 69 64 2a 09 09 43 75 | 72 72 65 6e 74 28 29 3b |oid*..Cu|rrent();|
|00005440| 09 09 09 09 09 09 2f 2f | 20 57 61 72 6e 69 6e 67 |......//| Warning|
|00005450| 21 20 44 6f 65 73 20 6e | 6f 20 62 6f 75 6e 64 73 |! Does n|o bounds|
|00005460| 20 63 68 65 63 6b 69 6e | 67 21 20 28 54 68 69 73 | checkin|g! (This|
|00005470| 20 69 73 20 68 61 6e 64 | 6c 65 64 20 62 79 20 4e | is hand|led by N|
|00005480| 65 78 74 28 29 2c 20 50 | 72 65 76 69 6f 75 73 28 |ext(), P|revious(|
|00005490| 29 2c 20 65 74 63 2e 29 | 0d 09 76 6f 69 64 09 09 |), etc.)|..void..|
|000054a0| 52 65 6d 6f 76 65 43 75 | 72 72 65 6e 74 28 29 3b |RemoveCu|rrent();|
|000054b0| 0d 0d 09 6c 6f 6e 67 09 | 09 43 75 72 72 65 6e 74 |...long.|.Current|
|000054c0| 42 79 74 65 49 6e 64 65 | 78 28 29 3b 09 09 09 09 |ByteInde|x();....|
|000054d0| 2f 2f 20 52 65 74 75 72 | 6e 73 20 6f 66 66 73 65 |// Retur|ns offse|
|000054e0| 74 20 28 6e 6f 74 20 61 | 63 74 75 61 6c 20 70 6f |t (not a|ctual po|
|000054f0| 69 6e 74 65 72 29 20 74 | 6f 20 63 75 72 72 65 6e |inter) t|o curren|
|00005500| 74 20 69 74 65 6d 0d 09 | 76 6f 69 64 09 09 53 65 |t item..|void..Se|
|00005510| 74 42 79 74 65 49 6e 64 | 65 78 28 6c 6f 6e 67 20 |tByteInd|ex(long |
|00005520| 6e 65 77 49 6e 64 65 78 | 29 3b 0d 09 76 6f 69 64 |newIndex|);..void|
|00005530| 09 09 53 65 74 4c 61 73 | 74 49 6e 64 65 78 28 6c |..SetLas|tIndex(l|
|00005540| 6f 6e 67 20 6e 65 77 4c | 61 73 74 29 3b 09 09 0d |ong newL|ast);...|
|00005550| 0d 09 76 69 72 74 75 61 | 6c 20 76 6f 69 64 09 09 |..virtua|l void..|
|00005560| 43 61 74 63 68 45 78 63 | 65 70 74 69 6f 6e 28 29 |CatchExc|eption()|
|00005570| 3b 0d 0d 09 2f 2f 0d 09 | 2f 2f 20 2d 2d 2d 20 46 |;...//..|// --- F|
|00005580| 69 65 6c 64 73 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ields --|--------|
|00005590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000055a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000055b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000055c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000055d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 09 2f 2f 09 |--------|---..//.|
|000055e0| 0d 70 72 69 76 61 74 65 | 3a 0d 23 69 66 64 65 66 |.private|:.#ifdef|
|000055f0| 20 44 45 42 55 47 0d 09 | 6c 6f 6e 67 09 09 66 53 | DEBUG..|long..fS|
|00005600| 69 67 6e 61 74 75 72 65 | 3b 09 09 09 09 09 09 2f |ignature|;....../|
|00005610| 2f 20 3d 20 27 4c 6f 6f | 70 27 0d 23 65 6e 64 69 |/ = 'Loo|p'.#endi|
|00005620| 66 0d 09 54 4c 69 73 74 | 2a 09 09 66 4c 69 73 74 |f..TList|*..fList|
|00005630| 3b 0d 09 6c 6f 6e 67 09 | 09 66 46 69 72 73 74 49 |;..long.|.fFirstI|
|00005640| 6e 64 65 78 3b 09 09 09 | 09 09 2f 2f 20 41 20 70 |ndex;...|..// A p|
|00005650| 6f 69 6e 74 65 72 20 74 | 6f 20 74 68 65 20 66 69 |ointer t|o the fi|
|00005660| 72 73 74 20 69 74 65 6d | 0d 09 6c 6f 6e 67 09 09 |rst item|..long..|
|00005670| 66 4c 61 73 74 49 6e 64 | 65 78 3b 09 09 09 09 09 |fLastInd|ex;.....|
|00005680| 09 2f 2f 20 61 20 70 6f | 69 6e 74 65 72 20 74 6f |.// a po|inter to|
|00005690| 20 74 68 65 20 6c 61 73 | 74 20 69 74 65 6d 0d 09 | the las|t item..|
|000056a0| 6c 6f 6e 67 09 09 66 42 | 79 74 65 49 6e 64 65 78 |long..fB|yteIndex|
|000056b0| 3b 09 09 09 09 09 09 2f | 2f 20 61 20 70 6f 69 6e |;....../|/ a poin|
|000056c0| 74 65 72 20 74 6f 20 74 | 68 65 20 63 75 72 72 65 |ter to t|he curre|
|000056d0| 6e 74 20 69 74 65 6d 0d | 09 54 4c 6f 6f 70 2a 09 |nt item.|.TLoop*.|
|000056e0| 09 66 4e 65 78 74 4c 6f | 6f 70 3b 09 09 09 09 09 |.fNextLo|op;.....|
|000056f0| 09 2f 2f 20 41 20 70 6f | 69 6e 74 65 72 20 74 6f |.// A po|inter to|
|00005700| 20 74 68 65 20 6e 65 78 | 74 20 6c 6f 6f 70 2c 20 | the nex|t loop, |
|00005710| 6f 72 20 6e 69 6c 0d 09 | 42 6f 6f 6c 65 61 6e 09 |or nil..|Boolean.|
|00005720| 09 66 4c 69 73 74 50 72 | 65 76 69 6f 75 73 6c 79 |.fListPr|eviously|
|00005730| 4c 6f 63 6b 65 64 3b 09 | 09 09 2f 2f 20 57 61 73 |Locked;.|..// Was|
|00005740| 20 74 68 65 20 6c 69 73 | 74 20 61 6c 72 65 61 64 | the lis|t alread|
|00005750| 79 20 6c 6f 63 6b 65 64 | 20 62 65 66 6f 72 65 20 |y locked| before |
|00005760| 77 65 20 67 6f 74 20 69 | 74 3f 0d 09 7d 3b 0d 0d |we got i|t?..};..|
|00005770| 0d 09 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...//---|--------|
|00005780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//|
|000057d0| 20 54 4c 6f 6f 70 3a 3a | 43 75 72 72 65 6e 74 3a | TLoop::|Current:|
|000057e0| 20 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | .//----|--------|
|000057f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 09 09 0d 69 |--------|----...i|
|00005840| 6e 6c 69 6e 65 20 76 6f | 69 64 2a 20 54 4c 6f 6f |nline vo|id* TLoo|
|00005850| 70 3a 3a 43 75 72 72 65 | 6e 74 28 29 09 09 09 09 |p::Curre|nt()....|
|00005860| 09 0d 09 7b 0d 09 72 65 | 74 75 72 6e 20 2a 28 28 |...{..re|turn *((|
|00005870| 76 6f 69 64 2a 2a 29 66 | 42 79 74 65 49 6e 64 65 |void**)f|ByteInde|
|00005880| 78 29 3b 20 09 09 0d 09 | 7d 0d 0d 2f 2f 0d 2f 2f |x); ....|}..//.//|
|00005890| 20 54 68 65 20 6e 65 78 | 74 20 74 68 72 65 65 20 | The nex|t three |
|000058a0| 6d 65 74 68 6f 64 73 20 | 6d 61 69 6e 74 61 69 6e |methods |maintain|
|000058b0| 20 62 61 63 6b 77 61 72 | 64 73 20 63 6f 6d 70 61 | backwar|ds compa|
|000058c0| 74 69 62 69 6c 69 74 79 | 20 62 79 20 74 75 72 6e |tibility| by turn|
|000058d0| 69 6e 67 20 74 68 65 20 | 69 6e 74 65 72 6e 61 6c |ing the |internal|
|000058e0| 20 42 79 74 65 49 6e 64 | 65 78 0d 2f 2f 20 70 6f | ByteInd|ex.// po|
|000058f0| 69 6e 74 65 72 20 69 6e | 74 6f 20 61 6e 20 69 6e |inter in|to an in|
|00005900| 74 65 67 65 72 20 6f 66 | 66 73 65 74 20 61 6e 64 |teger of|fset and|
|00005910| 20 62 61 63 6b 20 2d 2d | 20 73 69 6e 63 65 20 69 | back --| since i|
|00005920| 6e 20 74 68 65 20 6f 6c | 64 20 54 4c 6f 6f 70 20 |n the ol|d TLoop |
|00005930| 42 79 74 65 49 6e 64 65 | 78 20 77 61 73 20 61 6e |ByteInde|x was an|
|00005940| 20 6f 66 66 73 65 74 2c | 0d 2f 2f 20 6e 6f 74 20 | offset,|.// not |
|00005950| 61 20 70 6f 69 6e 74 65 | 72 2e 0d 2f 2f 0d 0d 2f |a pointe|r..//../|
|00005960| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00005970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000059a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000059b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 54 4c 6f |--------|-.// TLo|
|000059c0| 6f 70 3a 3a 43 75 72 72 | 65 6e 74 42 79 74 65 49 |op::Curr|entByteI|
|000059d0| 6e 64 65 78 3a 20 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |ndex: ./|/-------|
|000059e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000059f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a30| 2d 09 09 0d 69 6e 6c 69 | 6e 65 20 6c 6f 6e 67 20 |-...inli|ne long |
|00005a40| 54 4c 6f 6f 70 3a 3a 43 | 75 72 72 65 6e 74 42 79 |TLoop::C|urrentBy|
|00005a50| 74 65 49 6e 64 65 78 28 | 29 09 09 09 0d 09 7b 0d |teIndex(|).....{.|
|00005a60| 09 72 65 74 75 72 6e 20 | 28 66 42 79 74 65 49 6e |.return |(fByteIn|
|00005a70| 64 65 78 20 2d 20 66 46 | 69 72 73 74 49 6e 64 65 |dex - fF|irstInde|
|00005a80| 78 29 3b 20 09 0d 09 7d | 0d 09 0d 2f 2f 2d 2d 2d |x); ...}|...//---|
|00005a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ae0| 2d 2d 2d 2d 2d 0d 2f 2f | 20 54 4c 6f 6f 70 3a 3a |-----.//| TLoop::|
|00005af0| 53 65 74 42 79 74 65 49 | 6e 64 65 78 3a 20 0d 2f |SetByteI|ndex: ./|
|00005b00| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00005b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 09 09 0d 69 6e 6c 69 |--------|-...inli|
|00005b60| 6e 65 20 76 6f 69 64 20 | 54 4c 6f 6f 70 3a 3a 53 |ne void |TLoop::S|
|00005b70| 65 74 42 79 74 65 49 6e | 64 65 78 28 6c 6f 6e 67 |etByteIn|dex(long|
|00005b80| 20 6e 65 77 49 6e 64 65 | 78 29 0d 09 7b 0d 09 66 | newInde|x)..{..f|
|00005b90| 42 79 74 65 49 6e 64 65 | 78 20 3d 20 6e 65 77 49 |ByteInde|x = newI|
|00005ba0| 6e 64 65 78 20 2b 20 66 | 46 69 72 73 74 49 6e 64 |ndex + f|FirstInd|
|00005bb0| 65 78 3b 20 09 0d 09 7d | 0d 09 0d 2f 2f 2d 2d 2d |ex; ...}|...//---|
|00005bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c10| 2d 2d 2d 2d 2d 0d 2f 2f | 20 54 4c 6f 6f 70 3a 3a |-----.//| TLoop::|
|00005c20| 53 65 74 4c 61 73 74 49 | 6e 64 65 78 3a 20 0d 2f |SetLastI|ndex: ./|
|00005c30| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00005c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 09 09 0d 69 6e 6c 69 |--------|-...inli|
|00005c90| 6e 65 20 76 6f 69 64 20 | 54 4c 6f 6f 70 3a 3a 53 |ne void |TLoop::S|
|00005ca0| 65 74 4c 61 73 74 49 6e | 64 65 78 28 6c 6f 6e 67 |etLastIn|dex(long|
|00005cb0| 20 6e 65 77 4c 61 73 74 | 29 20 09 0d 09 7b 0d 09 | newLast|) ...{..|
|00005cc0| 66 4c 61 73 74 49 6e 64 | 65 78 20 3d 20 6e 65 77 |fLastInd|ex = new|
|00005cd0| 4c 61 73 74 20 2b 20 66 | 46 69 72 73 74 49 6e 64 |Last + f|FirstInd|
|00005ce0| 65 78 3b 20 09 0d 09 7d | 0d 0d 2f 2f 2d 2d 2d 2d |ex; ...}|..//----|
|00005cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d40| 2d 2d 2d 2d 0d 2f 2f 09 | 54 68 65 20 44 45 43 4c |----.//.|The DECL|
|00005d50| 41 52 45 4c 4f 4f 50 20 | 6d 61 63 72 6f 20 63 61 |ARELOOP |macro ca|
|00005d60| 6e 20 62 65 20 75 73 65 | 64 20 69 6e 20 61 20 68 |n be use|d in a h|
|00005d70| 65 61 64 65 72 20 66 69 | 6c 65 20 74 6f 20 64 65 |eader fi|le to de|
|00005d80| 63 6c 61 72 65 20 61 20 | 6e 65 77 20 69 74 65 72 |clare a |new iter|
|00005d90| 61 74 6f 72 20 74 79 70 | 65 2e 0d 2f 2f 09 55 73 |ator typ|e..//.Us|
|00005da0| 69 6e 67 20 69 74 20 61 | 76 6f 69 64 73 20 68 61 |ing it a|voids ha|
|00005db0| 76 69 6e 67 20 74 6f 20 | 63 61 73 74 20 72 65 74 |ving to |cast ret|
|00005dc0| 75 72 6e 20 76 61 6c 75 | 65 73 20 66 72 6f 6d 20 |urn valu|es from |
|00005dd0| 54 4c 6f 6f 70 20 6d 65 | 6d 62 65 72 20 66 75 6e |TLoop me|mber fun|
|00005de0| 63 74 69 6f 6e 73 2e 0d | 2f 2f 09 65 2e 67 2e 20 |ctions..|//.e.g. |
|00005df0| 44 45 43 4c 41 52 45 4c | 4f 4f 50 28 54 49 63 6f |DECLAREL|OOP(TIco|
|00005e00| 6e 4c 6f 6f 70 2c 20 54 | 49 63 6f 6e 4c 69 73 74 |nLoop, T|IconList|
|00005e10| 2c 20 54 49 63 6f 6e 29 | 20 64 65 63 6c 61 72 65 |, TIcon)| declare|
|00005e20| 73 20 54 49 63 6f 6e 4c | 6f 6f 70 20 74 6f 20 62 |s TIconL|oop to b|
|00005e30| 65 20 61 6e 20 69 74 65 | 72 61 74 6f 72 0d 2f 2f |e an ite|rator.//|
|00005e40| 09 66 6f 72 20 61 20 54 | 49 63 6f 6e 4c 69 73 74 |.for a T|IconList|
|00005e50| 2e 20 20 55 73 65 20 49 | 4d 50 4c 45 4d 45 4e 54 |. Use I|MPLEMENT|
|00005e60| 4c 4f 4f 50 20 69 6e 20 | 74 68 65 20 63 6f 6f 72 |LOOP in |the coor|
|00005e70| 65 73 70 6f 6e 64 69 6e | 67 20 2e 63 20 66 69 6c |espondin|g .c fil|
|00005e80| 65 2e 0d 2f 2f 09 53 65 | 65 20 61 6c 73 6f 20 44 |e..//.Se|e also D|
|00005e90| 45 43 4c 41 52 45 4c 49 | 53 54 2c 20 44 45 43 4c |ECLARELI|ST, DECL|
|00005ea0| 41 52 45 4f 42 4a 45 43 | 54 4c 49 53 54 2c 20 44 |AREOBJEC|TLIST, D|
|00005eb0| 45 43 4c 41 52 45 53 54 | 41 43 4b 20 61 6e 64 20 |ECLAREST|ACK and |
|00005ec0| 44 45 43 4c 41 52 45 51 | 55 45 55 45 2e 0d 2f 2f |DECLAREQ|UEUE..//|
|00005ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005f20| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 0d 23 64 65 66 69 6e |--------|..#defin|
|00005f30| 65 20 44 45 43 4c 41 52 | 45 4c 4f 4f 50 28 6e 65 |e DECLAR|ELOOP(ne|
|00005f40| 77 6c 6f 6f 70 74 79 70 | 65 2c 20 6c 69 73 74 74 |wlooptyp|e, listt|
|00005f50| 79 70 65 2c 20 69 74 65 | 6d 74 79 70 65 29 09 5c |ype, ite|mtype).\|
|00005f60| 0d 09 63 6c 61 73 73 20 | 6e 65 77 6c 6f 6f 70 74 |..class |newloopt|
|00005f70| 79 70 65 20 3a 20 70 75 | 62 6c 69 63 20 54 4c 6f |ype : pu|blic TLo|
|00005f80| 6f 70 09 09 09 09 09 5c | 0d 09 09 7b 09 09 09 09 |op.....\|...{....|
|00005f90| 09 09 09 09 09 09 09 09 | 5c 0d 09 70 75 62 6c 69 |........|\..publi|
|00005fa0| 63 3a 09 09 09 09 09 09 | 09 09 09 09 09 09 5c 0d |c:......|......\.|
|00005fb0| 09 09 6e 65 77 6c 6f 6f | 70 74 79 70 65 28 6c 69 |..newloo|ptype(li|
|00005fc0| 73 74 74 79 70 65 2a 20 | 6c 69 73 74 29 20 3a 20 |sttype* |list) : |
|00005fd0| 54 4c 6f 6f 70 28 6c 69 | 73 74 29 20 7b 7d 09 5c |TLoop(li|st) {}.\|
|00005fe0| 0d 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 5c |........|.......\|
|00005ff0| 0d 09 09 69 74 65 6d 74 | 79 70 65 2a 09 4e 65 78 |...itemt|ype*.Nex|
|00006000| 74 28 29 3b 09 09 09 09 | 09 09 09 09 5c 0d 09 09 |t();....|....\...|
|00006010| 69 74 65 6d 74 79 70 65 | 2a 09 50 72 65 76 69 6f |itemtype|*.Previo|
|00006020| 75 73 28 29 3b 09 09 09 | 09 09 09 09 5c 0d 09 09 |us();...|....\...|
|00006030| 69 74 65 6d 74 79 70 65 | 2a 09 43 75 72 72 65 6e |itemtype|*.Curren|
|00006040| 74 28 29 3b 09 09 09 09 | 09 09 09 5c 0d 09 09 7d |t();....|...\...}|
|00006050| 3b 09 09 09 09 09 09 09 | 09 09 09 09 09 5c 0d 09 |;.......|.....\..|
|00006060| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 5c 0d 09 |........|.....\..|
|00006070| 69 6e 6c 69 6e 65 20 69 | 74 65 6d 74 79 70 65 2a |inline i|temtype*|
|00006080| 20 6e 65 77 6c 6f 6f 70 | 74 79 70 65 3a 3a 4e 65 | newloop|type::Ne|
|00006090| 78 74 28 29 09 09 09 09 | 5c 0d 09 09 7b 20 72 65 |xt()....|\...{ re|
|000060a0| 74 75 72 6e 20 28 69 74 | 65 6d 74 79 70 65 2a 29 |turn (it|emtype*)|
|000060b0| 20 54 4c 6f 6f 70 3a 3a | 4e 65 78 74 28 29 3b 20 | TLoop::|Next(); |
|000060c0| 7d 09 09 09 5c 0d 09 09 | 09 09 09 09 09 09 09 09 |}...\...|........|
|000060d0| 09 09 09 09 5c 0d 09 69 | 6e 6c 69 6e 65 20 69 74 |....\..i|nline it|
|000060e0| 65 6d 74 79 70 65 2a 20 | 6e 65 77 6c 6f 6f 70 74 |emtype* |newloopt|
|000060f0| 79 70 65 3a 3a 43 75 72 | 72 65 6e 74 28 29 09 09 |ype::Cur|rent()..|
|00006100| 09 09 5c 0d 09 09 7b 20 | 72 65 74 75 72 6e 20 28 |..\...{ |return (|
|00006110| 69 74 65 6d 74 79 70 65 | 2a 29 20 54 4c 6f 6f 70 |itemtype|*) TLoop|
|00006120| 3a 3a 43 75 72 72 65 6e | 74 28 29 3b 20 7d 09 09 |::Curren|t(); }..|
|00006130| 5c 0d 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |\.......|........|
|00006140| 5c 0d 09 69 6e 6c 69 6e | 65 20 69 74 65 6d 74 79 |\..inlin|e itemty|
|00006150| 70 65 2a 20 6e 65 77 6c | 6f 6f 70 74 79 70 65 3a |pe* newl|ooptype:|
|00006160| 3a 50 72 65 76 69 6f 75 | 73 28 29 09 09 09 5c 0d |:Previou|s()...\.|
|00006170| 09 09 7b 20 72 65 74 75 | 72 6e 20 28 69 74 65 6d |..{ retu|rn (item|
|00006180| 74 79 70 65 2a 29 20 54 | 4c 6f 6f 70 3a 3a 50 72 |type*) T|Loop::Pr|
|00006190| 65 76 69 6f 75 73 28 29 | 3b 20 7d 0d 0d 2f 2f 2d |evious()|; }..//-|
|000061a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061f0| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 09 54 68 65 20 49 |-------.|//.The I|
|00006200| 4d 50 4c 45 4d 45 4e 54 | 4c 4f 4f 50 20 6d 61 63 |MPLEMENT|LOOP mac|
|00006210| 72 6f 20 63 61 6e 20 62 | 65 20 75 73 65 64 20 69 |ro can b|e used i|
|00006220| 6e 20 61 20 2e 63 20 66 | 69 6c 65 20 74 6f 20 69 |n a .c f|ile to i|
|00006230| 6d 70 6c 65 6d 65 6e 74 | 20 61 20 6e 65 77 20 69 |mplement| a new i|
|00006240| 74 65 72 61 74 6f 72 20 | 74 79 70 65 2e 0d 2f 2f |terator |type..//|
|00006250| 09 65 2e 67 2e 20 49 4d | 50 4c 45 4d 45 4e 54 4c |.e.g. IM|PLEMENTL|
|00006260| 4f 4f 50 28 54 49 63 6f | 6e 4c 6f 6f 70 2c 20 54 |OOP(TIco|nLoop, T|
|00006270| 49 63 6f 6e 4c 69 73 74 | 2c 20 54 49 63 6f 6e 29 |IconList|, TIcon)|
|00006280| 0d 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|00006290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 0d 23 64 65 |--------|---..#de|
|000062e0| 66 69 6e 65 20 49 4d 50 | 4c 45 4d 45 4e 54 4c 4f |fine IMP|LEMENTLO|
|000062f0| 4f 50 28 6e 65 77 6c 6f | 6f 70 74 79 70 65 2c 20 |OP(newlo|optype, |
|00006300| 6c 69 73 74 74 79 70 65 | 2c 20 69 74 65 6d 74 79 |listtype|, itemty|
|00006310| 70 65 29 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |pe)..//-|--------|
|00006320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00006370| 2f 2f 0d 2f 2f 09 54 68 | 65 20 46 4f 52 45 41 43 |//.//.Th|e FOREAC|
|00006380| 48 20 6d 61 63 72 6f 20 | 73 65 74 73 20 75 70 20 |H macro |sets up |
|00006390| 61 6e 20 69 74 65 72 61 | 74 6f 72 20 6f 76 65 72 |an itera|tor over|
|000063a0| 20 61 20 6c 69 73 74 2e | 20 20 49 74 20 69 73 20 | a list.| It is |
|000063b0| 66 6f 6c 6c 6f 77 65 64 | 20 62 79 20 61 20 73 74 |followed| by a st|
|000063c0| 61 74 65 6d 65 6e 74 0d | 2f 2f 09 6f 72 20 62 6c |atement.|//.or bl|
|000063d0| 6f 63 6b 20 28 77 68 69 | 63 68 20 63 61 6e 20 63 |ock (whi|ch can c|
|000063e0| 6f 6e 74 61 69 6e 20 62 | 72 65 61 6b 29 2e 20 20 |ontain b|reak). |
|000063f0| 49 74 20 64 65 66 69 6e | 65 73 20 61 6e 20 69 74 |It defin|es an it|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.